metanorma-un 0.7.4 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,8 +14,7 @@
14
14
 
15
15
 
16
16
  <xsl:variable name="debug">false</xsl:variable>
17
- <xsl:variable name="pageWidth" select="210"/>
18
- <xsl:variable name="pageHeight" select="297"/>
17
+
19
18
  <xsl:variable name="marginLeftRight1" select="40"/>
20
19
  <xsl:variable name="marginLeftRight2" select="40"/>
21
20
  <xsl:variable name="marginTop" select="30"/>
@@ -47,7 +46,7 @@
47
46
 
48
47
  <xsl:template match="/">
49
48
  <xsl:call-template name="namespaceCheck"/>
50
- <fo:root font-family="Times New Roman, STIX Two Math, Source Han Sans" font-size="10pt" xml:lang="{$lang}">
49
+ <fo:root xsl:use-attribute-sets="root-style" xml:lang="{$lang}">
51
50
  <fo:layout-master-set>
52
51
  <!-- Cover page -->
53
52
  <fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
@@ -103,7 +102,7 @@
103
102
  <fo:page-sequence master-reference="cover-page" force-page-count="even">
104
103
  <fo:flow flow-name="xsl-region-body">
105
104
  <fo:block-container absolute-position="fixed" left="0mm" top="72mm">
106
- <fo:block>
105
+ <fo:block>
107
106
  <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Front))}" width="188mm" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image Front"/>
108
107
  </fo:block>
109
108
  </fo:block-container>
@@ -204,8 +203,9 @@
204
203
  </xsl:variable>
205
204
  <fo:block font-size="14pt" margin-top="4pt" margin-bottom="8pt" role="H1"><xsl:value-of select="$title-toc"/></fo:block>
206
205
  <xsl:variable name="title-page">
207
- <xsl:call-template name="getTitle">
208
- <xsl:with-param name="name" select="'title-page'"/>
206
+ <xsl:call-template name="getLocalizedString">
207
+ <xsl:with-param name="key">locality.page</xsl:with-param>
208
+ <xsl:with-param name="lang" select="$lang"/>
209
209
  </xsl:call-template>
210
210
  </xsl:variable>
211
211
  <fo:block font-size="9pt" text-align="right" font-style="italic" margin-bottom="6pt"><xsl:value-of select="$title-page"/></fo:block>
@@ -323,10 +323,10 @@
323
323
  <!-- Back Page -->
324
324
  <fo:page-sequence master-reference="cover-page" force-page-count="no-force">
325
325
  <fo:flow flow-name="xsl-region-body">
326
- <fo:block> </fo:block>
327
- <fo:block break-after="page"/>
326
+ <fo:block> </fo:block>
327
+ <fo:block break-after="page"/>
328
328
  <fo:block-container absolute-position="fixed" left="0mm" top="72mm">
329
- <fo:block>
329
+ <fo:block>
330
330
  <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Back))}" width="210mm" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image Front"/>
331
331
  </fo:block>
332
332
  </fo:block-container>
@@ -343,9 +343,6 @@
343
343
  <!-- ============================= -->
344
344
  <!-- CONTENTS -->
345
345
  <!-- ============================= -->
346
- <xsl:template match="node()" mode="contents">
347
- <xsl:apply-templates mode="contents"/>
348
- </xsl:template>
349
346
 
350
347
  <xsl:template match="un:un-standard/un:sections/*" mode="contents">
351
348
  <xsl:apply-templates mode="contents"/>
@@ -412,9 +409,6 @@
412
409
  <fo:inline> </fo:inline>
413
410
  </xsl:template>
414
411
 
415
-
416
- <xsl:template match="un:bibitem" mode="contents"/>
417
-
418
412
  <xsl:template match="un:references" mode="contents">
419
413
  <xsl:apply-templates mode="contents"/>
420
414
  </xsl:template>
@@ -424,7 +418,7 @@
424
418
 
425
419
 
426
420
 
427
- <xsl:template match="un:legal-statement//un:clause/un:title">
421
+ <xsl:template match="un:legal-statement//un:clause/un:title" priority="2">
428
422
  <xsl:variable name="level">
429
423
  <xsl:call-template name="getLevel"/>
430
424
  </xsl:variable>
@@ -451,7 +445,7 @@
451
445
  <fo:block margin-bottom="16pt"> </fo:block>
452
446
  </xsl:template>
453
447
 
454
- <xsl:template match="un:legal-statement//un:clause//un:p">
448
+ <xsl:template match="un:legal-statement//un:clause//un:p" priority="2">
455
449
  <fo:block margin-bottom="12pt">
456
450
  <xsl:if test="@align">
457
451
  <xsl:attribute name="text-align"><xsl:value-of select="@align"/></xsl:attribute>
@@ -466,7 +460,7 @@
466
460
  </fo:block>
467
461
  </xsl:template>
468
462
 
469
- <xsl:template match="un:copyright-statement//un:clause//un:p">
463
+ <xsl:template match="un:copyright-statement//un:clause//un:p" priority="2">
470
464
  <xsl:variable name="num"><xsl:number/></xsl:variable>
471
465
  <fo:block>
472
466
  <xsl:choose>
@@ -488,7 +482,7 @@
488
482
  <xsl:call-template name="show_fs_table"/>
489
483
  </xsl:template>
490
484
 
491
- <xsl:template match="un:feedback-statement//un:clause//un:p">
485
+ <xsl:template match="un:feedback-statement//un:clause//un:p" priority="2">
492
486
  <fo:block>
493
487
  <xsl:if test="@id = 'boilerplate-feedback-address'">
494
488
  <xsl:attribute name="margin-top">5mm</xsl:attribute>
@@ -580,7 +574,7 @@
580
574
  </fo:inline>
581
575
  </xsl:template>
582
576
 
583
- <xsl:template match="un:p">
577
+ <xsl:template match="un:p" name="paragraph">
584
578
  <fo:block>
585
579
  <xsl:if test="following-sibling::*">
586
580
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
@@ -603,24 +597,11 @@
603
597
 
604
598
  <xsl:template match="un:ul | un:ol" mode="ul_ol">
605
599
  <fo:list-block provisional-distance-between-starts="3mm" margin-left="7mm" text-indent="0mm">
606
- <xsl:apply-templates/>
600
+ <xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
607
601
  </fo:list-block>
608
- <xsl:apply-templates select="./un:note" mode="process"/>
609
- </xsl:template>
610
-
611
- <xsl:template match="un:ul//un:note | un:ol//un:note" priority="2"/>
612
- <xsl:template match="un:ul//un:note/un:name | un:ol//un:note/un:name" mode="process" priority="2"/>
613
-
614
- <xsl:template match="un:ul//un:note/un:p | un:ol//un:note/un:p" mode="process" priority="2">
615
- <fo:block margin-top="4pt">
616
- <xsl:apply-templates select="../un:name" mode="presentation"/>
617
- <xsl:apply-templates/>
618
- </fo:block>
602
+ <xsl:apply-templates select="./un:note"/>
619
603
  </xsl:template>
620
604
 
621
- <xsl:template match="un:ul//un:note/* | un:ol//un:note/*" mode="process">
622
- <xsl:apply-templates select="."/>
623
- </xsl:template>
624
605
 
625
606
  <xsl:template match="un:li">
626
607
  <xsl:variable name="level">
@@ -630,8 +611,9 @@
630
611
  <fo:list-item-label end-indent="label-end()">
631
612
  <fo:block>
632
613
  <xsl:choose>
633
- <!-- <xsl:when test="local-name(..) = 'ul'">&#x2014;</xsl:when> --> <!-- dash -->
634
- <xsl:when test="local-name(..) = 'ul'">•</xsl:when>
614
+ <xsl:when test="local-name(..) = 'ul'">
615
+ <xsl:call-template name="setULLabel"/>
616
+ </xsl:when>
635
617
  <xsl:otherwise> <!-- for ordered lists -->
636
618
  <xsl:choose>
637
619
  <xsl:when test="../@type = 'arabic'">
@@ -663,8 +645,8 @@
663
645
  </fo:list-item-label>
664
646
  <fo:list-item-body start-indent="body-start()">
665
647
  <fo:block>
666
- <xsl:apply-templates/>
667
- <xsl:apply-templates select=".//un:note" mode="process"/>
648
+ <xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
649
+ <xsl:apply-templates select="./un:note"/>
668
650
  </fo:block>
669
651
  </fo:list-item-body>
670
652
  </fo:list-item>
@@ -677,30 +659,6 @@
677
659
  </xsl:template>
678
660
 
679
661
 
680
- <xsl:template match="un:admonition">
681
- <fo:block break-after="page"/>
682
- <fo:block-container border="0.25pt solid black" margin-top="7mm" margin-left="-9mm" margin-right="-14mm" padding-top="3mm">
683
- <fo:block id="{@id}" font-weight="bold" margin-left="20mm" margin-right="25mm" text-align="center" margin-top="6pt" margin-bottom="12pt" keep-with-next="always">
684
- <xsl:apply-templates select="un:name" mode="process"/>
685
- </fo:block>
686
- <fo:block-container margin-left="20mm" margin-right="20mm">
687
- <fo:block-container margin-left="0mm" margin-right="0mm" text-indent="0mm">
688
- <xsl:apply-templates/>
689
- </fo:block-container>
690
- </fo:block-container>
691
- </fo:block-container>
692
- <fo:block margin-bottom="6pt"> </fo:block>
693
- </xsl:template>
694
-
695
- <xsl:template match="un:admonition/un:name"/>
696
- <xsl:template match="un:admonition/un:name" mode="process">
697
- <xsl:apply-templates/>
698
- </xsl:template>
699
-
700
- <xsl:template match="un:admonition/un:p">
701
- <fo:block text-align="justify" margin-bottom="6pt"><xsl:apply-templates/></fo:block>
702
- </xsl:template>
703
-
704
662
  <!-- ============================= -->
705
663
  <!-- ============================= -->
706
664
 
@@ -763,7 +721,7 @@
763
721
 
764
722
  <xsl:template match="un:title[parent::un:clause[@inline-header = 'true']]" priority="3"/>
765
723
 
766
- <xsl:template match="un:title">
724
+ <xsl:template match="un:title" name="title">
767
725
 
768
726
  <xsl:variable name="level">
769
727
  <xsl:call-template name="getLevel"/>
@@ -816,33 +774,6 @@
816
774
  <!-- ============================ -->
817
775
 
818
776
 
819
- <xsl:template match="un:bibitem">
820
- <fo:block id="{@id}" margin-top="6pt" margin-left="14mm" text-indent="-14mm">
821
- <fo:inline padding-right="5mm">[<xsl:value-of select="un:docidentifier"/>]</fo:inline><xsl:value-of select="un:docidentifier"/>
822
- <xsl:if test="un:title">
823
- <fo:inline font-style="italic">
824
- <xsl:text>, </xsl:text>
825
- <xsl:choose>
826
- <xsl:when test="un:title[@type = 'main' and @language = 'en']">
827
- <xsl:value-of select="un:title[@type = 'main' and @language = 'en']"/>
828
- </xsl:when>
829
- <xsl:otherwise>
830
- <xsl:value-of select="un:title"/>
831
- </xsl:otherwise>
832
- </xsl:choose>
833
- </fo:inline>
834
- </xsl:if>
835
- <xsl:apply-templates select="un:formattedref"/>
836
- </fo:block>
837
- </xsl:template>
838
- <xsl:template match="un:bibitem/un:docidentifier"/>
839
-
840
- <xsl:template match="un:bibitem/un:title"/>
841
-
842
- <xsl:template match="un:formattedref">
843
- <xsl:text>, </xsl:text><xsl:apply-templates/>
844
- </xsl:template>
845
-
846
777
 
847
778
  <xsl:template match="un:figure" priority="2">
848
779
  <fo:block-container id="{@id}">
@@ -850,9 +781,9 @@
850
781
  <xsl:attribute name="margin-left">-5mm</xsl:attribute>
851
782
  <xsl:attribute name="margin-right">-5mm</xsl:attribute>
852
783
  </xsl:if>
853
- <xsl:apply-templates select="un:name" mode="presentation"/>
784
+ <xsl:apply-templates select="un:name"/>
854
785
  <fo:block>
855
- <xsl:apply-templates/>
786
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
856
787
  </fo:block>
857
788
  <xsl:call-template name="fn_display_figure"/>
858
789
  <xsl:for-each select="un:note">
@@ -892,7 +823,7 @@
892
823
  </xsl:when>
893
824
  <xsl:otherwise>
894
825
  <xsl:apply-templates select="un:formattedref"/>
895
- <xsl:apply-templates select="un:docidentifier[@type != 'metanorma' or not(@type)]" mode="process"/>
826
+ <xsl:apply-templates select="un:docidentifier[(@type != 'metanorma' and @type != 'metanorma-ordinal') or not(@type)]" mode="process"/>
896
827
  </xsl:otherwise>
897
828
  </xsl:choose>
898
829
  </xsl:if>
@@ -932,10 +863,10 @@
932
863
  <xsl:apply-templates/>
933
864
  </xsl:template>
934
865
 
935
- <xsl:template match="un:docidentifier[@type = 'metanorma']" mode="process">
866
+ <xsl:template match="un:docidentifier[@type = 'metanorma' or @type = 'metanorma-ordinal']" mode="process">
936
867
  <xsl:apply-templates/>
937
868
  </xsl:template>
938
- <xsl:template match="un:docidentifier[@type != 'metanorma' or not(@type)]" mode="process">
869
+ <xsl:template match="un:docidentifier[(@type != 'metanorma' and @type != 'metanorma-ordinal') or not(@type)]" mode="process">
939
870
  <xsl:text> [</xsl:text><xsl:apply-templates/><xsl:text>]</xsl:text>
940
871
  </xsl:template>
941
872
  <xsl:template match="un:docidentifier"/>
@@ -967,12 +898,12 @@
967
898
  <xsl:attribute name="text-align">left</xsl:attribute>
968
899
  <xsl:attribute name="margin-left">7mm</xsl:attribute>
969
900
  </xsl:if>
970
- <xsl:apply-templates/>
901
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
971
902
  </fo:block>
972
903
  </fo:table-cell>
973
904
  <fo:table-cell> <!-- display-align="center" -->
974
905
  <fo:block text-align="right">
975
- <xsl:apply-templates select="un:name" mode="presentation"/>
906
+ <xsl:apply-templates select="un:name"/>
976
907
  </fo:block>
977
908
  </fo:table-cell>
978
909
  </fo:table-row>
@@ -985,20 +916,7 @@
985
916
  </xsl:template>
986
917
 
987
918
 
988
- <xsl:template match="un:formula" mode="process">
989
- <xsl:call-template name="formula-un"/>
990
- </xsl:template>
991
-
992
-
993
-
994
- <xsl:template match="un:references">
995
- <fo:block>
996
- <xsl:if test="not(un:title)">
997
- <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
998
- </xsl:if>
999
- <xsl:apply-templates/>
1000
- </fo:block>
1001
- </xsl:template>
919
+
1002
920
  <!-- ============================ -->
1003
921
  <!-- ============================ -->
1004
922
 
@@ -1045,29 +963,23 @@
1045
963
  <xsl:text>iVBORw0KGgoAAAANSUhEUgAAAUgAAAEfCAYAAAAjn198AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA8BpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4M0JCQjMxNzJBNjcxMUVBQjQ3MkM1NDNGQjcxMjlFQyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4M0JCQjMxNjJBNjcxMUVBQjQ3MkM1NDNGQjcxMjlFQyIgeG1wOkNyZWF0b3JUb29sPSJBY3JvYmF0IFBERk1ha2VyIDE4IGZvciBXb3JkIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InV1aWQ6OTM1MzU0ZmUtYzRmYS00Y2I4LTlkOGMtYjk0M2E4OTk2YzhiIiBzdFJlZjpkb2N1bWVudElEPSJ1dWlkOjhlMzkwMGEzLTMwZWUtNGRlNy04NDc0LTlhZTA5ZTFjZjhmMiIvPiA8ZGM6Y3JlYXRvcj4gPHJkZjpTZXE+IDxyZGY6bGk+U3RlcGhlbiBIYXRlbTwvcmRmOmxpPiA8L3JkZjpTZXE+IDwvZGM6Y3JlYXRvcj4gPGRjOnRpdGxlPiA8cmRmOkFsdC8+IDwvZGM6dGl0bGU+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+wxonXQAAiIVJREFUeNrsfQW8FcX7/gtII6EgiIIoSNhKiI2FiWJgByoWFtgttmIXtmAXKioWFraYKPYXBAkVRBFEafif53ef/d85c2d2Z/bM3nsu3Pfz2Q/cE3t2Z2ee93lzqskzf0uVlEjLUzoGPd+vt/1QlNdVJRUvxTg3Ql3T8iTVlgeA1CeJz4MuD/BJM/GqQLEKLCvLvC1k/VUBZAUyPtuDqijwSZo4VaBYJcU4RwpZR5UdLCslQPpOEjykYgIfddJUgWKVVKZ5knYtVVagrFQAWQUmVVIlK547oQogq4CxSqqkCiirALIKGKukSqqk8gBlUQJkFTBWSZVUAWUVQFYBY5VUSZUUMVAWBUBWAeNyKc14rJ47VsNj5r9r5o62uaOFx7l+zx0/Y/3kjpm548/cMT13/MG/8f85VUNeBZTLFUBWAWOlltq5Y73csUnu2Dh3tCcgtuS/Ncv5ehbmjim5Y1LumJA7Ps4dH+aOH6seVRVQViqArALGSicrEQi7544tCIh4iDUqwbWDYX6UOz4gYH6eO/6reqRVQFl0AFkFjJVGquWOzXLHzrljh9yxde6om/JcMIMn84CpPIvH4tzxT+5Ykjua5o7rlO98QxaoXk+j3FE/dzTOHavmjiYprwe/N44McwwPrL5lVY+9CigrBCCrgLFSCABwp9zRK3fsQVPZVcDIviPw4Pg2d/zCY77D99vkjonK3wNzx80J32mQO1rljrX4b+vc0SF3bEBz34fdziTDfCN3jKSZXiVVQJktQFYBY9ELWNleuaMP2WIdh+8syB1f0Fz9mP8HoCwt4DrSAGSc1JIS/yjAckO6Bbp4sGCA/bO54ykCfpWsoECZCUBWAWNRy8q5o3fuOCB39CSYxAkmyNu5YzQBcayUBERCSmiANAn8qJsSLHFskzvWcATLB3PHo7ljWtX0WbGAMihAVgFj0Qp8eNvnjqNzx34JTBEM8SOam69LSVBjScbXVx4AaZL1qSTAnnskMEww5Fdzx12546UCGXOVVBKgDAKQVcBYtIKcw76546jcsU7M52Zx0Y/IHa/ljrnlfJ0VBZCqIG1pq9yxT+7YW0r8mjZBwOme3HG/lASeqmQ5BcqCAHIFBsaVaKYiqHFmBQBKkiDqPIDXaAtWzJASHxtA8d3csagCr1cHyNNyx60FnO+h3LFR7rgmdzyRknFvTrDcP0a5YMyG547BdD0Uk8D/2i53PC8rcIS+UKCsnhYYV1BwrEU2hlF/One8XETgiEWNCDT8hO/RlK5hMJ8BintKif/tlNzxZgWDo0kKrYqBzxDBo7TafxnH8RwpqfrZMnfcKyVpSaogGf7g3PElmfcORTSGSJXane6SHWQFlUKxyotBruCm9P5kCmvz79tyx6lFcm1YCFdKSTK3Sb4nI3s8d8wuwrHVGSSU0LAMfmdHKUkLepTKwlfqUfEcKyVBHpN8ljsukhJ/ZUULfKqfkE1CEZ7Pv6tM75AAuYIDI9JDbqLZGskH1MoLK/jatiMwbmV5/zVe+6giN7N0gEQwaWjg34DyGEMrAP7FqQWer1vuOCt37GuxxMDiL6T7oiIF6U6fEtwhz+WO82QFL8F0BcpYgFzBgRGVGlfljuNpvv7/sc0dnaVinfMbkc3uYjEPYUZfLiUJ25VBdIBME6SBy+BwssS/eL5XCFCRcliHJvPrAa8d5zyboF7ToqTOp8lfUQJG/oDyN7ISEI2/VEoqnaqA0gcgV3BgBBgeljuul5LuM6qAMW5LJlIRshqBr5+BtUTAeJmU5O5VJkkLkGCDvQhOu1qYHAASOZ/TM76HdmSMmDumwNjDZG4VlUv5SO44VHsNvt5rONbzqoAyASCr0nX+z794n9id2gCm+yvgupCCgqj0BVKS6K0Lqj4uqoTA6AqQyNtE+eP/pCTwsiNNXPiFmzqcf5SFbWchHcnMDjC8h5LMa6Wk7ry8AQmlmchpbW94byrdBU+s6ACgA+X/AeRyBIwwi2el+B6YBwIuVyq+Gl1ul5Kob3kLkpjvpGloWvjnc+JXZrEBJPxnx+WOI6S0OQVYT0PLeWA6jpfSHpFwgyCaixzPyeV8T53JznYyvDeF9/hMOV8T/LAfU+GaBMUBJ+WOn1KcuxatmEXLA5BEQFmtZcsWy8P9NOSCwuK4yvO70KjIm9s85jNwcm8t5RuUwYO5UUrSSHT5jBp/9HKi2HSAHEFmuLXhs/CZoQ4cFTB1ySifIti8V4Sm4k5kjZsZ3nsxd5xczuDdP3fcEfM+5vjFUuJi8qmgqkFFdBmfz3Ih1ZeDe0C52Fc0wXySi6txco5NAEcswAPLERxxXSdKSZRRB8ffpMThvvlyBI4m6W0BRwia8X5BBbId/z2ebLoY/WhgZV3pnpmhvdeLbpEBUn69NYckMNdaZL4f0F3gKgDTt6mkzpb8wGYVQFaQ7EBt1YbM0TVpuyUX1G2S3OHlGI3dZM2k3uIkbqhp9avIdofJ8l8HjF6QL0hJYGOG4f2JNLURgFlQCe4Hz+t+Pj9YBYuV99DjEqlY7+eOdcvpejCnf074zOZ03fT1OC+Y6Swy5scluRFKFUBmKGCMIwkk8Onc6fi93ck4d3L4LKonni0n1ojk46+lpGmCKgABpPVcIMVX0piVwBeMemj4HjuQmeAZRxFgRK1Xr4T3hST9M6SkI7tuhqJb+5dSNq0sq+s4wMEqgj9+KJVyPYfzzqVpLrS6nnX8XhVAZsAchyvs72KHh12Dmg1+EpfIJxzVA8vhXmAiIl8PzQ9W1ibxcQTMFS2pd5nm4sDzbk2TeibHBF70tSrp/cGsRiUOAiL/aGwS+YnwTa6W8TV8TrB2kSNpcrd2+CyCmdMVEvNiZWaSlTFI051maASOcHC31cwWkyZ8UkpqkF0E50LPwM8yvhcEGhAgaq69/gKZRGXvFNOEIIaF1YqLHlsmNNI+hxSU/ZS/P5X8lKWlNKnBUOZRkQBEUQ//RSUfI3RcupuWjSq/koW9n/HvD9fGPk4AfGjg8VHC5wbQbRAJqnfQlHlJZXs4lQ0gO1CTraq8diK1bhxzHOEBjhAk9F6T4X2gGxASvs/RzKn/yFrvqWTzCIAV7W4YHR3FnLMZWqbRNTGWrAim62+VEChPkBL/ZF1NUZ9DsMmqVLQRlcw6jp+fR/dHXDVSHVpgasu4u3mPVQCZIRtBDpea6DqDDCVu35M7PR/MaClJRM4qEIIBRxRxS4PJc4iky0Erb2lBE3Fb/ruRFFfU8hfJ38nwq0rCXjpJSSONTbXXwcCOkOx80JtyvGp7gOQ2Ep9/i5zhWw2v3V4FkOEFLBDdUfTAysVkYnG+k2Eev/MHmdCvGd0HIoNwXOsbYiH6d7pUfPMLm6DGeCuagTjWT3meRXQbYJzhe1vAxQZw3UtTFtPIbhqRiUJBrpLyd/8hUL7LY4wUb0JzbTLJ/trrX3GMssqZPEHcA52REkJu51+W98GEp2jW3hKSj3eqADKsXGgAwkX038ywfGdDLgTXjZpgwqCed1RG99CXZobqsAYjQET26SIc87oEQ/iOdhN79YpJyfygHD9J6ZavtmfVRvJTqdB04hHLNbXmc8exNsF6PVoWKzleI/yZr5CtvVqkYIkcWGRR1Fdem07zNqteACg1PNDj8+iHumeM+Y/UtPO0134jCZlRBZBhpBu1v55ICzN1/xgfyBc0WVzlcjLSLNgvam8HGhgBwOd/RcYU9+Qi2VNbnCb5m4v1c/77qaTz/+kAiUDAiBTX3p7m/hZk65uKucOOKn8SjOH3LbZa9o6c5+spr82nZfRUBr+3MtdNO4/vxDUW6WQZ09eodIu+03mxA2Q9Aonpge0m9qakcGoP8PgdpCKgeiO037EOF58eJcRrx0nxVH6AbR9F5haXAvWvlPhocaBC5OtAYxYCIG3jD5BEmlBPAmccYL5P1obI7n9F8mygpNCq7ADN2sH8vjWD30uq19YFc3jjGEX/uZjLLJHiNKQKIAuTq3PHuYbXka3f3GIaYfc+dE92DRr8SJZqavO/WgGmAPxlSNdRm9kCTM6ij6mipRYZ+KkSX2o5hWD1An1HWZijOkDuThM4tDTg/EBnHzS6tSWbIwcVVTzIjkjTU3MnKsBmBFqw0+cLWadcB1dIfu7yFbR6QjOx4+gOcpUxnOemQJjJPRYpW7hHfqkCyHTSiezRpPGHkfGYGCe6t6zt+BsAv+5iLiU8mSZbmm0V1iTD6qC8Npem68sVPK6rUHsjCGB7+AhSPUqfVHnkGeoAebBk33qrOhf1AWT4NrBEUAfBCwTXXINoMDlP0147m66WQgRWzmOS71dHe74TxD9Kj/u/n/P7H8P7YKc+3atsG62BXdo2NHuOiqoKIFMIAGZHy3v7cnB1Qe7iOY7nh2ZHZcZnBm19I02Y/cW/JRXcAa9z0UfyG1lRRe58BwBApPxEMfsWwQwRLHqQDLw802J0gIRz/4Jy/P3qZJbHE4RMSvkPghEOtY65Oc13+An/pPKuRvfPZppZjNSYDwq81i5k16orBKB5RIpn9gavH+4qfQuKGnQ97eZ4rjkkFKbGxAjStYph229WAaSf7CLxmx415WRUBRsToZbVJZIJMNjL8Bs16O/BZEP6AtJxfJohABxHS0n7f9VEhQ9sfAWNZQuaZydY/Ep/kCHhqKjKHR0gf6fp+KzhOZsETR6mEaiG0Sp4lAvvRs/7glulLy0I26KOutbsQBZaTTPPhxB0sSUwghQb8r2bqKQKlY4EN3WevUiF7pMqdgwBH+CIvqN6W+2V+TvdHM/3MNeOyeI70vKdT+niKcqATTECZDWyus0s739LMNQFE3ZrR3DERHpBex0+OTjneyn+nYs8rntDAq6a4whfKQIDFVFL3ZjAeLKFMaJjDhoLDJWK74jTxuLmAJtz8d2dSpcBzGWkI73POdSZim7HFOwd8wHbJ6AhcdsC7m0EwXIvXuOdgcYMLigkdzcqACTrkd0hVxE17shc0FOIcP5RHiC5tYElH0HLJM518LwUoRRjs4reMeAI+cRicruAIyJu+xjAsR7BrZfCAm7xZI5vSNkEcKTB/FvO47cSfUc/092ggyO2gD2ULOQuKc52Ye9zQboumlvJ2g6W0tpl3COisatIfl2wqyykNdFeCou29iZL75kAEmmuT++ej/k7UtybQ/ynzPOmZNx6McZsXvvbjuccbCEvcXJesZrYxQiQSaxNNwPgL3Kpm55JP9NL2uuINL7F99SHPNPxetfk903dV9amyb1mOY0dJvJXBIwmBmA8mOwbPqvFUrzyDE0vH7lVW2g/0vxFRLaQfYQai90X7mPKjuK4twowPlDI70i+nzuSnWkJuYIklEfkN4QyRRDxEANI7uoI8Cih3Vt7bWLCeto8wBivEACJh7Bpwmd0c/V4SW40+g0fwhjDRPtQ8tNcfhb3NJxm1KzqpP+TvxdJ23IASYAzor5IwF3PYEpHwIjPlGez3a/42xuX428ijaoL/497RV7jIynPBZ8tovgdAl0bgONz8StgMIEj5pPqf/xAY5O96Dpx6VI+VyMlIBzw314l+b5VMNa+dNskzaGrDL+dtG/S6VKEUmwA6RKB/lHzEyXRczzs7lK2g3Ivmut6EjrM0/kO17EyWUE7DYywOBFkmlpOIIn7gF/2QIN5fwYBs7yBMRJ0lUZkFf6/TcrpN2FNhIqALybI/xDw+qBUR0i6TkcmcAQrRbCoK+dfJIfQheKSD3wf3RG62fuSwTK6liw1Lj8Yc+4AA0mJk90CKqJKD5CmpgMoEeuR8L2lGtCh8qOl5bMAOeT7wdH+r8YKbpASP6Ruhj4mbnmK0I5Paot+Aq9/kpTkEcJkn5YhSCIXbgjvQ035QDQw2gXxRqnYBhjXUIlgnL4up9+Ez/DuQOdaQta3u4TNB21Pxe2zD40JHO/iGliozD8VJLEPzmUO58acOdbgdgFojZOyW+bCpbSZxPslz9b+TirjjPaIMoFtnRUJIJGUe5vhdZeWZJOVBR+lUdhMu85S1rm+MX1bJjoPP4xrUvjtkp8fNo2AqLLG8ZywWYDkxjRZTjSY0whWIVr6V5Eo4b/5PMqLwWIMXg18TvjQ4M98MTDz190zvuDYXxtXzL+eGrtDJctRDr8BhnelxX2D8bxJ8tPEMK93IhCalPAmvJZIXFg4wF7foqExSUvdipi85Q2Q29HsGq29Xp9ML0nGadqto0ETolphc01j1aTZBZN6Q8u5MYlccu7O0sB8DhnGFMNnAZLbaFq9UJCElh1j8GM9zEm53Gy5WWQCi+RgSd7syke2kfxSVFdwvJPgaMod/JnzUbWawKhdgiBXij04NoBm+AaaRRett+8N3znTg0FCGhlM8zFcs/dJBfQcLU+ARK7VEwSr17T39nH0yXymAZoqk8jYoNHU1JXN+NCR12iL7CEC6lL7u4vkR8wxQfokmI8TeV0/FQiSdTl+t2ma/F+ORZYNVSu7uHT1cRGM9eDA19bKExyvjQHHSGBdHKp8Bvf+rCQHh5AjfIjYU9M24blBNtSCjLG02PQcTzDMdRRLYrrDePQzuDlG8roGlPfEKU+AhFmKrPRvpWzTz70czxEl+4KG76G8/jTNzneV15AwfDNZ48YJrNQlOLQO2W91Tau69I+cStM3bXQbjn3kqB1oMIsQFBpWhYGxcq6ES9AeHfjatrKYjzZwPNfxvMghPV9bDyMkua8nrJ64GuxaJBsgK92V1+dJabJ+1AmpGoHax8zGeKxluBchOdlgeQRIAOBB/P+rhgHf1fE8UaQNUbs69H2cwoeiduOBnxPRbhTQxznC/6NmSopaA5BR+60GdYaK2ZdqEyQLby/5ie4uIIlcSqRxbKG9DrOpq7hHWKvFuBeWd4ECbC/5ua5pZZKE7Wi0N+fqUQngeJMHOIoCKGrfSIzBQw6m6lBJbuIcbV17lwa6TxPkIhKk9mx1DXQdrP39OtdoLZKBlcpr4pQHQNaR/IaaeqL2do7mNSZR5HzuRsDpIfl7XDTlAxou9k41qhwvyekHELSr2kj5+0sp2xLfRZAs29MDJOEeQDmZmuf5D5nkCeKWjhQJFAGCJatVIFA1o7kL0wsVJvA795WyjY+70WWAz/Tic0Y0c5UCQA2K8i2eq3YB9wD3zYOBxwVmNqp2zhR7QOaMlOdGkvp3GiC7pEHB1E1q5lxNWUM9NUuvq5Tu6d5cMf1d5CCDa+Mt/r+zlOPmX+VRi632g8PiXlXTwKa27Ca5X/FPQDPeJ/kNIPBAnhH3SgXsA3Oyw+f6UqNGMosPaWIBY4K+hC9ojCZK05iqsG6kHdXXlERvSZ+XB4Apj+h2e4L7+mStnWg21Q5wbgDUNI7BOC7OLwkCcX45AGwfjkE3/n8lgqev1CWDPzzwuM0jaVHH6REqi0KaOSC/8FOFiMB3jkDOawnfgzk7RspGlm0C0/sSKY2sg/Fdzd8ZxXnh2pegleRnhUB5RO3i/uY9Zb5tQ9YACbbys7LIR0ppvbNKn3dyONehBAxITQ1k+0rZ/V7iBA99W0nOEWxPsyC6fkxSFPSH6OmISfcKr0MHyUM4sVSGj5QQBLNmF5n5Wp2sEMnDW9MvtWoFXMdMjtFbdOPYgO90gsNIXuvhKU1mMFIE3tbJ8J6e5LwP0XpuX8lv3TeD7C4pcIK5+KjH77zEa1bnqbpeJ0lZH6NJjiUJimRLyW+C4Upwihog9aab53PhqxQdjKxRwnmWkab/YXgPGmuQxzWh9VUXyc9PNEltmrdq6WPofWsaUUF0VV6bS4apymP0URXLrocNCTIA7B0LAEQ81zkEgFU0lj6Hv1PfQ/Gp8gMV2UiaejrIrE/Q2JHK9XEL+GPe2fbZ+c3RlZNGXqG1EPKZXyf5qTeue8OgoYVP42iQil0t69V1G2a4yg7Q5pwKugDcjhI27apcAbI1TWA1vaKn5G843sHRXPyCZq3u/4D/0ccXuIAM7WOHz16v+X0+JNsL3Ui2Ga/HxkSuopuiovvl1abZfwSfowtoIQj2PY+feEwjsODfyIfaRnNZ6BtBga2tzs+tw3mzCedEc4frgFsBkdBnCTzqM0TL/zo06XQwgrWA5HDUc5+ofa8m51MWuXmIEG8n4ffFqUlloUafMceTeg/UIJj6NJQYL2WLJyB7UGklyWQD0/yFuBLJg7QeKyVAwrF8vPbaWpKf4oNo83CHc8FHeY0GjkPE31l7mKO5sAXpfDT5obk2luz2z+gsZTubC02IOyoYGBFFH8CxSwqSwL80WkqCUPB5feeoUJIAMk7WpNLrwQWZZPJOoWIdQra+B4+BUpo/G3WmB0O+iden+sAhTS0MqVBBuV9byW7/awAMgihRRsZCAuaXCd9rQkXe3uO3dL96BNLTpWyZr0laaC6A0VQckSzh9WTGIrOKYq9uQPYlhofu6r/RUw4GpwDHax3BEWxiqMYMTpBsNxey7UU8UMqvVZouG9MH9j+aVyZwnMUxPYTPvCPHChHZcVI+2zZg8T1C8GrLaziTi8lU3tiKc2EqgRCR/XPpTulEplmL13+wlCYnHyP5icozNR9ZKFnJweVUiGANHq38XYvzPSmRfhYtCB8feJSh0UIzjV33gV/f8Kx1Znt2lpMrK4A8TcpGLP+ysBMXc2OCBiZnel7Pk+LelPNyye8q8oRku4EUFt1ZMRNsFM3w8pKo+8+X9AHpeaSzaXJuz+sCs4T/rqK2azCx2Bt4fa0I7qbyy0ZkiZPJeOFrHkYQgGLakPeP8tOXFMXcRTnHZRndAxRMvQzHaITkZ2ZAGV7gOLb7il9Qqy1/r462plxkDe3vvw2fwVYOmQUFswBIONWPs/ijdHHJyVN7+W3AyeMj74l7mgRqSk/XWMKpGU7UAzT/zxL+rfb2A6t5qxxAEvl3SCL+hkpI962NIaNqzuc7OkOGGMr3hq5KSObfiuN4o8EsrqYoxG60FBCUQG37JCqDPxTz8HFlsU+R/Gj5EoLBcCksmRwgPDJjkBwg+f0Dzhe3KpW3NAYqjutKbVqMZr+/OXyvkcH9YLL4js5qkLIAyAMt/gUThW+acK6lirZpzMnnM2mw2PcWt0ggmNJd2pj0z8jPBNmGizACIuTAIShwBv0sMzXFkBVIAvAQxUWw7HADMMI5H6Xv4FmUxxYNWUTrf+DYwmWBxPQ3LJ+Dn7whraD2BMiZmiIBkxzEuRU1UJlE1gq/ZR+CwqwCrnd7KvfVMxrjOZLvU60p7lUqj4h/z021lnoprToXd4MqNpJzvGTUyCILgDw8hlnqkgR2iLhN580/In6bJ8Es39VjksJ3pvZ3fMbDV+Irqq9LBceoDBOLbgcDSL4U0D8VNRv+Hxmhbko/z0WOMfxAlh9ZyGe7MxmjKaKKlKrvCXZgnfBZqlVLSF27hAobCmMVuovUvVe+FLc2Y3GyGc3/zTMai1EkBZF0Fve9sJFd4bvXD9KMorzfNK3jZseY8ZmMUWiAXEXyE591ulzDsEjjJNpcC7mHe3hcR7QF6DTHz8PUv0L5+x/x2zTdR/Bbrygseym161va50wg2ZWTulCQ3JILGJN8ZQMwYmH2FvMGacuTINLei4z9EwOzfpJzsI7Yt23YP4ZNYSwLbbS7JoG3T0ZjgGtX2/wNErfUKSEjv9fjt8AIURvekvf0T2B3VdED5G4J5/StpX2BDOYST+YIAPAJ/V9DE16dNL9lNN6PSH5+11lkIiYxgWQ3gmTDFL9fk1ocO//pe9e8TS3cW5JTPrKW2uX8e1FuYF8pW1kCAEW6UpxPEabjGpb3Rga4vpqcN5tmcO9/SX4As6G4bYIXmbwwb306JQF8h9MqfMPzWuPM/z0kowUbUpIuUo82xTnj4WCH0/sxD/8CtLXaScRFumimEMBhSEYL8XyadpE8KclJujaQ9PXHtiYQnKmN52SC4g5FxBiXVMBvYrEj8Rh+x1skP0UILPvEmO/WsDCYelTWoVwij0g22w/crz37vh4mK8YNvnqfPeS3oHn+UcLndHxoEPNZPLfgZZ8hAXIlyd+GwAUg/05ggsPFLaE0YpvbKQygluPkvFZ72CdmtEDherhU+RuspJ/jdyOQVFnt9uIe6dyWyqO79vpNZJLFtml7RW5JO4eMcHNPJn0Y3SRRZ6Koh+dOAa9tPXHfcdNHoAxOkvwgyO0OxEQNGsJFhQCt6z7wANWkypzpnvexezED5JaamepiYsdtcYAob2fH376cLCjqqN2EJmMSuO5C4IlkmJTdGjaENCUTjsb7Xy4knw7g4wh00wwgGefLPZqmjKqcoqTf0z0mdHlK/SK4hs/I1C8Ut5Qd+G1Xo3Jdm26M7hlcFxT4yRnd72OaZbVfwnegYNVerk9xzFy7Te2S8L5vt55dQw9KSIDc2eEzet5joSk0WNxwXl+saL9mNCUxSV9LuHeVPc6XsI0oIoEWRjqP6qNCIvL3Kc5l2ghsezFvFA+zbzDNJzXF6isu5heleKVYQBtM9kouepddGeGamSQlientM7wu5HbenIG5fbGmDC6T+IbTr3AeHapZRhivEBkgOkAm+d13CD0mIQHSpVuzD4NMkp9oBg3XTHiYORtwssaZaogcq1sxYMJNzWAyn6Nptqj5QVoxgWQvDSTBnOGj1Ct0HqH/Z5JUiY+M5VxLCkaggme05JfW4bn8mME1nUbLICQgILCppv0gHS2u5yXSpeAme0gDSUSnDyARKMRdoldnNUj4fN3QrD0UQNal1kiSVQMxyGdpAnyrvIbUl5cJjvO1B22674s1oL42g0ncXUqbBUf32y/AeW0g+SQBEP7GPTUmdBon+7xKAEh1i/CaMKf602KxBRfraCwHJutBdBd9nsE1ISB5TeBzXqEx+ItjXDjzqTSqG0AyIh3biXu6nSrzDJZEA4fv9ShGgOwsbrvG6QzSN5UGzmSk4Owv+TlUAMdRCkjjYc2MOQ+0m7qNwZUSHzBKI/VoWqupCcdLuC7IJpDsTfOujfLadJoet1Yixla7iK9tOAEvqfYc4IgS1yVUjDtK+A2/IiYZEhRmSH4nJbiq4rZkRrephcSSYVJ2A74PiQ++xQamAI0LQG5TjADpmsqwqsMg2GQ2Bx/JzWq0bWUNHPFeXIY/fILnaazurgwmLq6zncZ6nwv8GxFI2nI+0XsTuXPvBfxNsCREUuGQX13cGo4sb/IF53wcM7pH8rMhMH/RLBrZGfvwmBXoeoZI2I2sbtYsjYFij2hPl9Ik+pWoQHY2fAZK2qfpi4lINHX4XpeAuBbsRJs4fq5ZSgb5EwHwJQPgvqGZ91i4cVE01M+qG3DdmIHZCVA6VVscJ2W0WAGStm1rr5PwCe+tuWD24sI4X1ZMmZhg3t5veG0UGc4IHl8FupZOZJKhBNaX6ieH2youXWmw5O/BjbQxPUK9kCa4KxmZ4YAfJoGLI1iALFTD3HHi1gkEEa71NTaSBE7v0XTU26XhPMh91JND0aYqbqdCJKdGjlyk2bQKbF5Xo1mhOovRS/CBjBZqUzKaVhY/DnJT3wn8myh5bCJue4KbXA8AWZTQIasB/i1UFg1SPjOCig+K5VeyrslS8V3VVdmMJnPcjpwwCeMi8gfSDVMzwPVgLiNPckpARajuCICMkLg0mickv68pouEnGOa9a7Nr9No8Vvm7prg3MTlYArUoXCnQOTqmNLHh5F0Q43MawZvVtzdFQOJRMdcRx4Fjdw247pPwvscjtN+A72VoRosU4PK0Bo4w66LUjLpUIqhLD5nf+amHhdKFrAkm6cZUaEkJyL15qIIE7s95H0jjQp7hP1Ixsh4BQ51/ywz3BYZ5dgwJeJJrIkTX+Aa0nraTMN2QJhNkoij2Lrzv7yyfv0wDyJpk0bAukW+7WBmnaJuUOJD8IwV7VJ9P0ZjYa3oArakW2zbJ4eTe3wCOZxEITZr70oTfP1Wb0LcFXjh1NbNriZStUAjJVGEG9VBeQ9L4FpIfoILJ8SqZdXkIxmA/MqMZBDTs74NGq20lfVsq3AdSydD9G9kKf5Jlnu6hoENIOzLnptpc3dowl08m0OytvY7+k5HpNoTP5skA1wbFfGfAe9UDe/0SrENTRdYpHK9VtbXXP8Hc1uMTa3i6HIoGIH2c9DUNwGYyQZ6V0gigCgg3099hWmR4OHGlYc0lf4N6+DND72UxQPJz4IYE9DPpMohjpPrEjiC702u3UeH0VoZAAsYKx/yDBEU46g+TbLd/xVxCZBi5h0i6/4FjkmWCdjua1Wto4HgE3Sq9DWwxqqJSyQEYPfzqUe8CWD1IB0KlVKGd2Y+W/KbPhQiqaz7RrKO4qi0bQdmeltRaHiCps+BWHtcdrCY7BEC28vy8TpX1fUM+J61fopmSmGSnpXg4otB51dcTejMsgJAaLAFAXZTRQgX4qHmciIbuLqVRUVODi6ZkXO0CXgcm4rX0e43iAjKlYiwjCDxECwC5hMjh25QKVk/NGMz3tiIbPYVs/22xl2eClaHr049UEkmLOSQ4RnMVSmhPKVuaCL/r+crcB8uD3xiJ1uqWv/C3d/NwYdjk2oAs6g7NRbZ3zGe/pJlvez5QIhs5gmTtAnAm2D5OIQByNc/Pr2rwLan/B8v7TwPH4dSwNnk6gT3W1Pwd/5P4MsQ0AtOvkcbwZkt4AZg8oGnavaVs5N4EkmsQyAqdQAjIIWVpPH1spq7XM3mdiHY3oRl5JM3t4VwsqFCZJGUrmL7nex/Smrid7pEdqIg2I+B8YHFfdCGbBUs7WArvNu0CjqKA5P4GkETvxKjnKPxx+/D6buG8ierPp9BNsjqv/dsU17uShMsueFKbQ0mFDpfGuJSiPpCbG0Dy6QRsauWJSbWLBSB9zahVDD4rleVN0jQv/Ge9Ys63TPIjoCbZxWD6hvQLNpX8BgJgMXdnAI6tCUw1NbPHludoAsm1udibpXzW8Ht+TXNSB55/yAZ25Hgjev9iYEWxhMrwavr9WhGkfzJ8di0C2YeSvpeiDziq7pv5htenaax/CwLZu5KfO7iEpvYTZJhp6uZ7B1rfC6hsItmZQGcT+CLjdg+FL/lNyW8Sg7XYV0q3r4g+p4NrIZZqhQFkoxSLTJWo4w7Mr8e1874syTXej4k9sqaCiMq4HgoMXGdKfgeasyR8y66VpDTqGcn5kuzcH0cgURdnW/Hf46YPWWo/AzB+ydfBek7kucurpyPuC/meHTlXnjD8dnf60+4Qv6bNHVOAY+Q2OkPKJoLvqa05+N+Pp2vmJcu55pGR+ib7g1w0DzTGw5T/VyOzTWKRceODtTJSUwr/0UqcH0NCfKRJiBsPAZC+O6/VMvjuftYYWFQ6uF3CuRY5+Pkaa34T+H3+CrhAm2nXPkay6ZRzjuSnDyEo5VqHC0bbQwPJDThJkxQcfIqP0LekT1KYuLvS5L1fwnXhSZMXuIxgdjCB7R7NzK1OU+4bSe5DKHQJvJcCHKNruZesVXUfdFVcPU0JFIjWjqBVY+tWs5AmuU8jaIxDqCIBjNmn2rnjZDzHP07qUinspbHPMxQQLcSV1zjEjVcv8P1Cpb6ikf5RwFGvjrEJnN0TEz5zoAbK9we+h4HawxyUwTghr0sNysBPdZSnm8BUu92NLN2m5DYjO9SbEPzCBQtm+loG91ujwO+PJzPrIGVTT1an8j1b7L5J+MjelrKpPC7gCFmZjP8Xzj/1OSF1Br525PmhB8AAKr9Dxb7vDQRpTfuJ+66ScwI/E5VFdpb8veNNcpmDwoQiHK6B5J0EzuYFAp6LZZvom04CQJcWZg0LGPQmnByfaMyxi8N3AaiXO3zuSOX/E6Ts5liFSAPJb8UPLftq4ImJZ3SfBvInSro6XhNIbkkmWUebOMgY+Ejyo95Y6LcQsEdkqDjnBzoPlGdvstwftTG9lua4zlS2krJ5e67gCIUxk+A0lewT/s/bNfCPUt0WKwwfwairEs4PN4HrZnKhS0Afl/zUm0MSPg8fqkv38wgk91DmGFKVahuUjq9LKkkOLQQgm4pbl5BCWOZ0ZRAbSH7TiSS5TuI79kAQrd1C+XuohA3O9NM02w0ZgMXx2j08FeOv8gHJqZoifIog3Jys8mYNlPGsepLx/JexZVEr8Pleo8l8obbID6ASiPLmkMz+upRtWebKHPsqwNpcYcLIcDAFkaCcxtKEPYzm5bYJvwHT/ckY0hDJNgT7UDJLsxZcdhEcLG4tDQGSiGJHgZsZZPiqLA08J5rRCkoNbhtIwJIdiyxSFsRzHuAI7eSyJ6/eeunRgNcOlqVW5gBwngk8Ps01VjFP8dEUaoJuQUYdSS8C4zgpW3ML1r2J+O9Cl1bqZTTXrqT5rLJJACdyEh/kIq2bEhw3INjdqJjB0fyGQjnccJ4taEUBtBGl3Z/XmCTHaX+/TqXXXfL9rqcHHkM1Faejg5k9l6a2i0Rlsd0UN44qvv7tpG07NnS4/liAXF/cKi98zaFlBqDB5PTZ3OhycdvPRa3nhakzKeBkAetSq4huk/CR62s1hjpYwnU9n8pFpYLkjpIf2V4spTsx/i7lJ1k29QWIddVYeCMCYfWU4AhrCxVTF9E1cR1fV01MuJHusayzGRzfJx0tsjk0SaHIViOzR0OS7zRzvpf4Bzfi5AWNgfd2+M492hxLArWXLMDlmyqWFOiDQmufZIrHPQywx3UdbHlfgNRvFGbPQZ7s5x6HzzWSfB/qE4EX2tEaOwndkGIjyU9P+pUAGVIikDT5MyfQRLs6A/MmSRZkeG5YKwgKDhN7toEPOEIQQEEwBkEUpHitQRfFLdrnrjAQhI6KCXmQuDe/fZkmr27C3qRcd02J3zJBUqzdUZ4AuVD8/KFQNs9L2diGr4JOIivtOT5rF2Ji15TkukZff5Ta5w1pPIM8v3++I1PbQwP3kEGFxpK/49uLUvgGZCb2WE1TJFn4/tYVe87Yr7J8SXua03dzfBfF3LdPHucyWkC9Cb4IKCC74WPN3fOyASCv42fraWZ5WpnC34mkX+AxVM1suCtaOH7nM4/f6GAgQZM9rzMpiBkppk5pAXJDhUnGiW9O4XiFTj8ofkEeRImHO35Wrb75TML1yROCoxr1vS/wJNxc8v2AX0t+NUMogZa29alEMvloCVjXWsGCAMBHUtqPFIp/X8tnkfh/bIrfOIGgaGpgjPSijQ3zvQdN8ZC9AR7WgKBzwHOrIF9N4qvcVAVylufvHKhZlj8VQMRsxEAFSi+AbKGwiiQ/pA/L+Fu5cOT1reV50wPEPQqtmtehU2/6KP//TdI1jo2TMwx/Z2Hmwl/VRvn7dUWBVVaQhJP/Kloml3DOrEpzNK6KRq95HkK3yRMSn+6G37uUQAeljzQcPQLbxPCaLkdy0UZ154Xk674i+b7CfQOO70yy8Eh2cfwe5pHvliNRnTrkG8/vxnXqQkCodSEMUmWN+ydciM+OZVE2/pqSHwF2EUzUDx0/i+tvri38UNJI8utIn5GwZXVttAkN8M0iegwNrfqnJklJ6saW2mTMCiTj+vsV0lwCqTXH0eQFSN5E9v0HF6ht98px2t9wz/TlvcfNuwep7DsoJrMObgiqJOXfViNrhVtrnuSnDPkKAphvahZPSHlNY+auVuCZ4tfMFwGmCxQr0FXgK43bUnp9g6ntBZBqc1XQ8w0cTGYXiXwyJ4nffr7zxb7vis2cUr/7ccDJsZfkR8ieCjz5+kl+JcmFGYBjW83HA5/uIWT4f3D8sgLJVQj6pyYoIZsgX/Ze+qTWN7w/hgtrFymtJtmDCmCg5He9jpjG83RjmKwh+MkXeIB5HSnbrmwJwQ9pPS/EnAugeA2Zb3Xxy+zQZaTy/w6WsQoBkGDHro1AMNY3e/4Wynibcl5OcvzOOA98SMUgdaf9PgkA6Wr+vcvFf6TnIF0hfk7aHsr/v5IwLehNYwHz+oOA58bzOELz93wqYQXgjqqIhhoIf6T8nRVINiFY1fJUeJGsQwCEEkEXn40Mn1nKA1bEbbxXJF8j/eZtzaWA1mvtyTjxnaMV0ysS+MH21BbUuRwz3E9XgnY1KZsbayII6AvQRcyNlJsRkF/h37sWMNZ6hH7vgHMIc0VNSvdN0fNJVasrpRkjrmshqUl1L00Zt/AFSPEASGjX/zmcYxFNFTz01T0G6AcpzStzkWqazyjkhu0wu9RGB89LWN/gTpLf925IBuzxaslv0gr3gyl9KDRIrkTLYVNJt4/zmlSw6yUwBZSoIeCBvEOUSaLlGkoA0XhCTelAIOMsgvWbZG7wVV9kcBupjSRe5xhezvEAUPgmMX9OV4bJbGwspUUQuxTwnBGUVBPidw44h7CW30957rkp3Gt9FYLlIl/HvIeEfL3CqGCA3DRhUYx1NK+RpnKox8AsofbwYYDtJN8ZH3LLgy005hU6+HOU8v9JCpMIJUgoVgNAKB+EH9IW+AoJkg8TVO6kEmtL3xgqLfTemQisPEBA7UrQg1m9hqacvrGYf/2puGCtoB77Kilb24vaZzTjGKq5kObw3lTGBaX1EK/rOjLO7p5+MV3+E3PDEbiEviPbXV0Kq2YbrfwfgByyQkm1OLYWvw5M8AX7VJ2BtUfdlQo1sQ8QDx+3T4pNn5j3vnD4/luky3t5/OYlyoNoxYecJJ096bYvwKh+u5CNLxprTP3BwOwUTEmtslhGc356wvdCgGQ3mqr/EZDm0DUznIytp/b5tQget5MJzlXYFL43UMy1wOtxsUZWDQKMzWMWKZjcgZrLJCqNg6/wW81EvYk+NPhv3yCwr1HAM/nGoGSjwovv+e/2BZz/Pe35bxNwPo3RWPsmDt9R1+9x4hfg3ZfAl5TfuCwBII/29Xm5SlxGvosfDgsK+6bUd/y9d6S03yGuE3XULmVTnbXB+ibgpFB9Qh9K2G1HD9ZYzmOB2SMmxrrK34jmjiIjbsOjSUYgGdUO16N50yCFeT6TyhUBh8fFnDlwHc3d6eJQZ2uwVk6Q0sDONhLvwG/A+8KYbFfAc9Ej3jA/z1b8dIXkMOr7oYc0sz/W2G9Xh+88pczBvxKsF132J2H4JOFzP4q9DLmzeO7u6QOQm8ZooM8lvgJgCW/sEMffmk7AiBZBfw/tp06o8RKuiWt9yY/WvR4YwNSxgTP6p4DnRrrIIG1y30uz8W+aoRM5aSfRx7Z6IJBsImUjx+p9vklzOcldcQctECyA3wkgx2ifmUrW1DrFGNUge4MbABHgJxzXR2OOZVoZKfm9GzflXJimsOm0gvGYoJnCoWSOwnIhmzt8J2q+HFW4vS3uTZ83oPssKabwsaMLKzhACk0bk8xPuPCv+Fu7O/xGVJMadUPGQo06nCSBXTUNIEOyx80lP/3m/YDn1h3HwwOee2365ZprPp3x1ODVDOYtorRIyThHe98HJOGTQnrGfRbGOI8TFqYaSvQQWYyrdgLAPyml/Slb8Nx3Ks9loLg1MYn7DbDcPcRvD5R1Hd0/Jlkg+ak/C8i0olZ+hZYejtHAN2QruY81N4qru0X1g18k+TmbSSwyLUCuLPkZIpkAJCayrTb7owSARKqES+7jeZLvXL5RSgMjSZNlHckPooQEyC01Rhwy/WYfDYieC3Re+K++NJhpjSTZUV2H2v0hfrY6wXCmI0jeT0C1VXH8TTdCM/7OWWRib3ve4wlkYTC7Z8SwVRd5WNLntb5G5q1vS9Gc/rl1Y76rWiO1SQgOIOCfVuAcUE1SgOPGAeet6qPtIO7Nsy+R0nSrJbQWpzriTxJAjrG8foT4N931Bsi4PK84PyRSdfo4nP95yU/p6SH59ZhJzRo6Gn43lKgMb1xA010kP88OEcz/FXCuagQNpDq8Jf6bqumCRq5PcwKPpxkO0ES602INJN+jqTxJkrvIwDKYTSYJpopI82WSLiixK+dJ/QLvFek8gwnevtKAzBssOEqGPoh/f0mXCZSIKaij5/ii4gRBut3ErTFtnHxmYHCh5PsY6y1O4Cq5XbNM9ncgQJsTs2zNav4Tc4AG13ZymhtM0w38aAsSx5mcfziY1z9LftoD/BS3aZ9JMp/aaX9/F3AybO7o5/CVupKfF/hSgefbgGbnhhKue/p+UuqTbExAekjKtsIDK9jFw2/WRsJtLBVKtpXCNnwC8z6Fz2Go5Ke/bEeGs5XBraTK72SkPcVt64A4+ULyA1qbBxyr7w1zz1X2kPwyZozLAMe5+HuMeb3EokDjSgqXhARIgOMxhtenxzCf7RLM6wUcrFma6bSBJ0C21yZdKAYJ07GJNulCSQ9tbArdBGscfU2o9MiyXdkugcb1drK2+bJ8CFKBEBR7wjLn1zD4wiZra+FYBVihQAtpejtPIwobBLzXXyS/uXFSYxu9ZPNmzSwfIvmdiExybAzDt/UsSOpHOdUXIJPMx1Mt333fwYQ0yWk0Q1S/jWlDrqSd2lSAnBhw0empAT8GBkh1MvuWLtYnE4Ofqy+ZHUy5K6SwHL3ykGq8/nOksFSZYpJjadbG1T7/qY2BWm8Pf70abQar2qnAaxqrgVi1QPe6TFsLSUntMwzK4lLtNRCjbxLWuA3kTV21tpH46P3fEpNbuVIMLY8TREbhMH3WAJCmUHpcVxJk1OuVFNcZzJzFDr6hdhmZ1zpAhgz+qOlLH6QA9SulcEd+RcnZUpqo/hk1vRptb2CxVopZGkhynqeqBA/T7hF+3shPCL/llhLfmcbVqlBdOnCBTAp0vz9JaZJ4UnPt3wzgBnfEvcp6hR8RvlsEY2p7XMefGsmK5IKE78W1RbMC5A+Ok1sHyPc8B3eqlG1MCsAwOfiTdjDEvbQuB4DEgv4r0HlhgqmO7Q89v7+alNapViaZx4Vxv+YSudrw2d8dJnllEiiCqON3Q8mvg0cEXw2q3RsAHE1roVNAgJysuUzgGrAFW0xpXDVoaqvVVIiOI6vhVo/reE3K+nK7O7iCYgHSZmL/6sBk9K7XkP9JcumauiAO1egtQO5Oy+eT9qRoqt3P+ICTet2MzGsAb62UAAkz6S4pPEpdnoKa+odpfro2hEWe3AvLEUDeI6XBM7hBWiimHqL4u1mYXygGGZnZoWSyhidxSfq2zbtQ4aN3G4Jv2qfXwcuG185z+F4qgFwmbjuRDTK85ppAjVI3vTvHaTG+myTgbab9PSngJFhLUx6hRDc3xnh8Fxp2n0oACAs5UaNIOAIUEz2+v4yK9BtZPmQcWdMpPCLpR5BQ12SozcsAYmpZbEjftJ6F0Dzms3HpazdqJvUyWpcu5bxLDWCKQKVL34cJaQBSHCexiUW6mNmg0LpzFlHiCz0ehC4tMgLIWtpDD7m3zYbaef/2+N6VlQQQUEN/Dd0xaV0Tc/l9BA+RO7lEKq+goGKxZj7ezQV+dIa/O14zhUOJTlxWT8nW4L/UK/WmOrLAzwyuiEscrz8Vg3QFSBOLTGKQkWbQtSP8TI3T3ojGIJeJ/y5oNllT8qN+IfeH7hjjJ4qT86Xw/LjyEIxVqO1woVQ34hyZKMuPTKM1ANNar0SpH/B3VMLQMuB5ZwZikBEG6ETnTomv0oO8bWCPrg2CMwdIsEjVETpW4vMV7zPcMLTOSYXciPZg/pRwXcT1yRTSxFab47r6NmGG7FsJFn7UZxGLvG6A8z3FOYA83HaVFAyRpvYiFRxcDugsvgnNSBOrWyXgb090ZHm+ojO3Bgn3H2eBNTAQLpjPxyVYDXr+48WO1744iUhVLwCQVDlX+T9uxBZsmG2hzMiDq+PxgE2iphL9FXAC6ClKIfe/VsF3huN3QjccyEK+4KQGQ0bT39cCnrvYcztt8iHZEfxiV9Nl8LnCwBY6KOdiBMi5HgAZWQJx0k/KBpHgf7Zti7tIw5uOHuxxktjLFhMB8kuPQeoh+ekqNj/klQaNg4d1vMNvJLX/ahCj1QoRHbiXBDzvKilA3VTGB/aJVInLpbAu16HkZS5+tO0aSNOqa6BzIwXtfql8AiY0L+Z9NJV4WPJT7EIC5K8Zme56f4SkhhVJwTYEsEw7Tw4iwTKNm3oNKGJxTYRPDPzFAeRkT7Z0ovJ/kx8S/qjbDa+f5sAef5fkPEj1XkKWrenm4d+Bzqv7W+c5fq+R5s5AjXsnAhFMC+R+vVTBYAArYSPOiY5kDZ94mD5xspL4JRAXi7SKeW8HPtcjNFdLSKb3d8K8LkRme3zWJRthLynb+GKWBThHa2vDp6VZYtVaUi22T17egcqgI11FD8JcbwAB5C66dNn42uEzDT3uqxAgW5wRM3WRapr58A5N2GUawz27gsEACu17mkUtCIy4rv5SeJkbfNiHVTJwBHs7N+Z9dO9p7gmqhYJYRSkZVwvH5Iq70+CKUEHuaE92/E6hADna48caSGneEYDwY81PYeq6fLrjDfnuK9Mywwc8N9B5fLcdALDcIm5Nh7+TsL5SH0FlyJoEMbRAQxMS9CBEfmvPApUXlNWOlQgYsZjhb0T98BOackQLuSv4N57pYw7KOSSDXDnguX3cTj84WmEIRK5tuIfnlb9BDNSAb1/P8UhsOpOUKuK7rQB61z2pgGvUgADNTOcYAOIEx/O6+ENV03NdgsmsAA+/u/b3gEBmtp7OgNr2NjGf30byNzyPvoNxNW3utSyjRf8LFy7G+y8+RzVo9BvB4AcqzMX8zhm0IvDaiwW4O9aUyiMzCH7b06KqrVhZnTg/oTRUH5q6+dXaXEcNtfUzm+Nfk2t4nkJ4VlJYltoYWQ/sAaBr8Bpq8TfmanMJ5OVfA2Djmc7kMUPyO+0nNZQBmKKD+H4OhOBkye8+LsSXqLfs98paXE/M+6Tb5C0XYE8CyG9pHrgyst2pmf7hg42SNU3aEWjfxPG8Lsnnuul2akaTPqvGEHuL/+buCNhcVI4LfijNGCy8IdTeWETXaMzkQJrZV3CRT+TEBkgguj1V/IKAKvh2o7laGVKd1kwA9OYSnzdYW7LrcrR5Rud1sbBGOgBkZDJfpCmQlwna9TXz+mDP63TqG+Fi7ozy+FGYDlEt6cdcELMMF4PfHeh4zgni1o69SrIVsIWzFAaD8j/kJurNXxG9RvXMFLpQooYmUwmse9K0uTvldWCri6MkXJ5rlZQ/QLpul9xYyu5EMI8AC/kwa4B0qcZ4xdO2782FM58I/6+BysLkWMfxfO+nXMx3BHrgakeQkOeFia2mN90t9iqdExKYBtrzT1L+xv4gBwWe+MhV1dOnjpSS9J2f+TyR+dCL4Am/8eHKsx8opT43SCFbkM6hhbID51cxNuyAYn8kxfeQPL6H8jcUzLjA8zgyT58KdK8DlGcwx+Hzkz0s036c37p74EAp9SHCpdbW43ph4Y4NBZAvE+xco667S2nLozfEnNTcz+Nm3kjxwBD1HhTw4UcT69+A511TA8jhlnvdVMrWlc5TGBRK1U6R/KL+DgSqkPlupnKvZmQDcJzfRGYZ+dhWI1uM/EK/0lyazgUynkoibenmUVTcUWPlKTxXVykOaUGXxC8p5lsEkDAtDxP3FDDXeQy5VErjBYXKKZryciU+LvvtoNltO8mvJX+Zyjoqz/Xtbv+OOAaWXExsUGafSohGitn1isE8buzhPwLIpnHo/xNwoqtO6moBz6vndTa1fM5UdN+f44hjfcP9Ipfu+kDXCeUIX7SpkulsshA4yA8hGEbJ76tzEQL4XyV7hMP9Hv6NCQ+f4pfi5lyvI/l9QgG4qHJCF5gtpMQfW0xmd33eZ0PP76mE4ptA4JjaxHQUnyBNGsvwYANBwLqIUu56el7v864fdG14gK7fPgGEnWgCjTU84F7iXir3lrgnoS7OaCIt0sBfAgIPGEK9GIBczzLu6iTcjqzpBsmPXO8a6DpP42R+kMoSpnwD5YCpU5smzlZSur0GFAsCZZ0TNDyitu+S9U5PAEhsJ4GKKuTZdqIpH22SVYzJ40iSR7L8tR7fqaf8P2RjlDra/AnZU6CahVAkWaauDXEPlbJbsNylgPP2nut5RGiAfF5KI0euAHmhwmZU8elh6LM/9FzLJAsBZJHUDbyAAAhrKyapLjamrSbhYxe+y2gy3MTX2sUwUl9xDaboydsnkXVu7fDde8QtPSRyHwAg/0frpLMUt2zk+flVNKaUBUBOC3yPDS2EIk7go4Wf2mWfbjzzDSS/CmeJQiJ8copHSnJVnpeJHWkcH4dzV4tpoUa5XUzbx1OawiEB8k/N/GkS8NxqMnczw/t7aaD4M02jXwyTHUzvOJq8P4if0zq0fCmljnWXvMWzJL8pyCEEwdaa26SvlPhtR1JZ985gsYcW+BN9krJbWJRzSBCbGfC8DQqw5Hxa4e0dgzU+cpfPh32qGoZ4nreL4fXu4h7seVRhFZg0lyZ8/p8EsEkr+mRaLaNz64yvjTKGx3Dc2pIxqpo0ah+1FtleH80nVBESKdNNpWyivUnGS6mvui7v40kD+MHlsj5Bpw+/80mRA2QjSW7lp0pWVWDq/tyzA563QYwlZ8IFNZPhYQ+WbOsO7mNBgDh4Fb/4ACQiw297fN4EkNukBOQBklx/O9uihUMDZMhzT48B9QGKb+etBJ9KZHJsykmnR+iWZgwC+L3bpLTbN3w8qLn9XOKrg0zPehmZel/DfUzh+U7jmMDv2FOKX073cM+ojPvvgNewSkYA2cKDQcI/fawyr//ysEy7irk/pg9AXiueFWbVPd+7zNPMTguQr0tp/TWuAx06kGe3tiOQNZRw/sLfNYBpE+CctegG+COGmS6wmEc2DQ6n++oEDt2fd4+UzSULJeM4SRGQQeXD9nz2nbkQknxwowiuqlmJztK2BsIAjVvpbthKwqYyZSXNaE72JdMHqzyA7hLM23MV15Dazm5ywGtQOwP9lyFAxjHIQznP1Tlxm+PvVKP1pApiKBs7fj9VXmocQB5reG20OHTAiEH2TRy/e5Xy/27Kw93DkY1JApj6yCLN1Cu0m/V6BN05kr8HiW5iD1N+90yLyfEJJ13E4rrRDG9iWBx9+XsAl1t43C6F97fEYo9a6T/LBXKPx/cHG1jH9VK2gsIklaHcMJIDCZKoQ96VLgQEsOB7jfII9Uax3wf8/TUyAki9JZvNb1pXWb+7agrWtbKmh/b3+uLusrvCMM8SA5lxANlJzBFI19pfAJTajaS5uPkG35H8LkJqxUXvmO/pHbnbBJwEk5T/r1vguQYRwGpoDwgLZaDCFr+X0nLM7hZgAlOLKmaQinUpzRCkV6kNhjflv0Npng7gcYqHBrdJayndtxq//YL45f65+KBWMszVtaRy7gnelkrhcoLlm1K6re162me/Cvi7asDr34Dnba4Brw0geypsXw/U3uL4W/o62Mrxez9Y2OPphQAkbHVTp2+YBcMdL2wz5f8bOH7nGu1vlVZvJ/Z9OnRzZJ2Ak2CCpjjSCsB1n5hngaTn8QS6C5SJ87VFkXyjaW4A6i8ExGu0xdE2BrA/JrtMG908i+wHE86n2w5Myw8dFuAnZPK/EzSgQD+rJOa1Daz6UrkhJe5ExVpSLaJQuYqrSHZpPqtb3Fy6qPN+a408jRS3babXl/ycy20dr/F0A3usrVhfqQByJv0kJhp6trjt2dvZE7CQ2vGq5nfoojEJm5n9u+TnYIXc2GmcZiLXTHEOXM8rkpx7CpZ9MU2CaPJ1NfzmZAIhmAgqSE6lGXMd39e7JdvY92xqYrDLYzzuR912FteGlKwjPb7/pyR3dMZYPc/7rE6w3IiKsqlUbmklZTtDqQzp84C/1cGwVkKJGnWP60GqBtNqaJYhfPw3O/xWA8n30fZw+M6rXHe67CcOhR/VEyYwggmmFuZIAL7JEyBbeS66CFQaOy50DPIUTduEku+0Ret7bpicr0v63EQwDlPVwUZ0eZzO4xMpjdL9JPn1q4fEnH+pxYQZafk8mCsKAdS9YTZJYI9QXkj8f5BzB3MjqdwMTTo2l+VT4LdVN7CqK/k++jEBf0u33r4NeO72yv9tdecbSVlfpd6sZJi4RdfXUrChecJnF9KVZBLkDCf2i40DyMinZ2sscYUkR9k29QDIrw0L0hQJ30XsEervNaaXBYPUgd9FwBTaFHgNAIv7JD/HcYJiJvcyMLJHNHfHZgm/gTSINzTTbLzhc1F37JPF7if7lC4agOY2NMH3VdwHLk0cTpLlS8CwkNK0hZTtMr6NZiWEzO9UAXKe5ZmmkWoaQNp2QjV1btLjG7ZdB3SJCgpcFCe6uf9ocXVtJw6b+yVt2gXpJOb0HDh6T0k4Py5kZYOvwiTXSdkcJVMuJfxO2zsAZEsJ17J+mua32dLjuxjjgwNdxzGSnzMIjfsRzc09Deb7w9rfSV2UZnMyb0+AgyLSgziPKWZ8bTE3iPidgH0Px+19Lp4NuDgnEFz3TGDNHSsJ8A1W/o85PFyZy2ApD0hJYKIlQf9ji+JXGf2HAa9vQ+X/8N2G2pkTz0j1bdp2HjX1BegkZSuMbnO4toaOJOVHAqRJjlWs5NQAOdFhYSH6NiJBw0SsJc7ehzP6qYQHm6SRdIAMbWZ/nBIgB0phgR2TadDWAILVpWzOYVSaGAncJS6lkqOlxA96qzZHHuQ5AIrwlb5rYfnIjXvb4FL4hq6G1bkYXowxy/UxQ6XUUClOUYNo2FGyDy2G7Xmvx9AXFpdErfroUKo5J9C1YQ2quYIhu/i01/42BVrqiT3/eUMDKXvB8bc3d1gnpjhJXSn1tU8pBCD/VB7SwZKfJqDKiQm+gy0cAPJ2CxPp4AmQ32l/hzSzVZ9QR8mvHbYJGOzlAa8B4/yO5Efy7lfMCJPr4WaNfbtuGfEq/ULqpH+eGj7qA6kC8iTNt9WJCx1MsZYGdJHAD2fbD/xoAyMYIcUpX1PBQ6GcoSz20eIWzGyrmcFvB7y2jpKf+fFe4HMnAeQ2Yu+0ZCoicEk7g6W0acz7Q6i8TXKYMh6Jbp6kUsNowsM3cr7lMzCnBsScYxsFLEyy0OJ7AJW2+S3XF3PJ3w8JLKQQ0RvGbuk48UN2AJpJc3WQonAwfkihGGWZ/CM0awBuEZ/uJ69J6R7pr3Dc39IW9OucsIgM/qa8vjInPJj9qVQqSK1AJsJOZBD/WVwJejPVGRJ2n+hQch2Z8YFUPj+lOEcfwzMLJVtqpvtHAc+tWmgLLIxse0fTX1UOSXtnd4lZV1DU51jeg6K+SPtsEICMNHp7y+fANF6OeUDVxd5h53kx5091SLg2U8ABZWhqg95NAk6GLzT/iAtAzgi8GAG4FxBkNtRcC69bNLKeQrFKgkIzKbA9CQBNCdAqON5H/9rfZHldDXMBKV630JXyEhfWQrFXQVxpMbkXBBhD+ETvCvQ8oDCQ8lboDpL7aXMmJIhtpTFd3dq7jL/XOsW5O2vW29IYCzLp+6okVWL1iHkPOGUrd+yvka4fCgVI1bcCFnlDzGePtZhLjRNM3ScdtJNJNnBgeiF7BYLpqPtYuPQ5PDwj1vKvlK2G2JZ+F5Pcq2l3aNjmHr83jubwaMn3K17N31yiARAY4q5Sdt/hWmSOg2kCAVSREP05GfAIHib3RVSZNVAKCzJcQZY3m0chPRfPDGSmqsHI5yRscxHV/6eXCcOSQG30E+KfG1lbIyBjPczoSDYVc/PsxyS+O3yPGNPa5p7AnNK78yeWciYB5Kfa33uKPVH7V7FHtXcWc9XD/BjmmZQzaAPITzQzPWRFjZq311WS60CzSmbGWN6pvYba7OMtnwcIXK4tDB/faFsDOJ5Ht8uyGNMcCmoHgp6tkepqtAYwR6Ktb6No/DeaUm5JgCukndt5ZJDRlhUYC+TW/ux5nhekrM87jeh5xo8GnCeY+2rBxGjtfTCtE8jufber2FjysyZMANlE4jNJaom52cSfMW6G6hZWGmdaQ67SrmWiOOzAmASQcLLrkbdbY+x/IL+pDHEfMVeQjI7R4EnNJmw10R86mOJp5T1Ng3YvcHwLkXcs5rRNHtAm8TFiTqPSpR1/q61mqlzjeJ1v8/m3pAJ9Q9ybqranhRExxq8k3X7aqrSmUh7Gow/dPD7bIkApXBzgGa6kAeQkSbeLp01206753YDn7pqw7sTRbO8aM19t87Gh4XkcGQN4JuvqM5ebTFrAC6RsydM61MISY+dPj6H5ug8nTvvFic1h/4W2AEMC5LuGga8oga/FpzflEo3h49nfL/Flk+2oxNbQnu+dKa4XfubbyRSjvM1ryTTVaOI/ZHNfSalTvT9ZzkQJkxvZgwvqSI5BL3FvmAA5W8I0kthTG9uHpXB/piq7aG6SvwKeW1WucyyKywUgbYHUN8Scp2hqhHJrDPjXEXMQ+NMQAGmi5dEEsQVs/iBtd5GXCwBIW+fl+drDcgGxXqTgKxsm2NUKwOPefvQ4d0PJTgAyD6VwETys+YfOtXx2QzLmEOCoC3x/L9Etg0YX6yvs9wiy1f7Ks4FJBb/h0xm4LerTXE5yl0whWA/g2IwV/+1GdTleY//3B7wvWHk7Kn+/GnjcttWIg8kv7FJe3DFGoZt2H9T9+uPFnmEDudCCVU6BsLQAWZt+HNs2qPAfJDWnnCj2kidEvJOCCDXFvv3Be5qmM03+G7k4f+cCAStGd5UxvP4zOKkAIAggrGdgkVtKWSdzIy74bSVswwyT/CX+mxadIflNBQZJWac3AOAtjaGGAsdIOpO1YZ4gVSbyUe6tsNtI+uaOOyT9dgQhKkeu5GK7mSC+MedJWh83ntuuGln4JeD47iL5mSOvBDx3G+2+bTX7LkUJa8W8N8KBdMCSsvW37GYhAHDrOZVyugDk+2J2sG+fwBQHSnz7o/dSDpoqttZnr2lgbvIVfkwAwwBGm6jjPg8mMztKo+mv0++2pqalbyLIDCLbRMIwggvviN8WE2mkLYFsP4/v/MF7W6bMgSeU+9qI52yaIThCDlN+/3ApTSY+iG6StA2P1Qg/opQHUoHsV8C1Yq7MkrIJz3XEvT+qLnpA4Y7A46veL3xzHwQ89w7a3zaAdCn1jTPDX5f43pX3xuAInjkCXqaAHvylTkEpl21f5xIkTQmfNxAIvrP4nE4Te1QuDsFdewo2igHf+Qpz3FpjwjUJZD9zsCI/3FZcVDsZ2HFLMUfJ+kvFCbT4PuLvfH+J9xLVEDcnS8Zif0DT0lmAo9AN8gwn+auKVfG1+O3Brgu6kUf5bU/RdK3tyT4/pDkfKRQwmXsKYEm6wORTexGO05R6oYL7VTe5elPct2P1BUjEKKYVMDa1Of+mW9xlWLemzJkZEh+1vinGghvleqOuUdaRMX6OZ8W+reVjMb6PcTG/5zqZbQA5T9MsOrjDAfwtgb+mBsw7x7gOik0elvSRyeskP4EczvLhGjielxE4Cln6/gR4APYB/P09CjzvFmTET5ANIzCE6h6fzunjCZJfcwzAvnoHvPfLNGYzWMIGZ3bXnuMzgZ+d6tt8MeZzrs1i4ljkOzEW6qwY9twvgSAEBcjnY97rwMluA5XjLTT5lwwBUjezt9YmzED6v2pL5ZZC04jOjFFgN4l7Kk8hchcZFRjaWY5WTZwgurwBWRNY6kkpWB58jGN4DviT4W+sl2IOmmRTyS+jnCD5bc9CiOoegin5QsBzQ+m0cMQG12cZtxWLKdr8JsmXjZ0PiznfL+LRD9N1geEhxtVH9hZ76g/qeE1Rpl9TahRV6jsCJAIpasTxUgnXCq0ipdD9vxG8OMPw+gIpbWmWtdQhyIR6Hh/QetihnK7ft7Ht9RqZGCTueaEu0oIMUjUnQ27zqro/ENkfGwAg4zITxhrm5gkxeAC2HBe09GLTPgzkqYT3r4gxQ2DmfKyZwIsSHnKh8o3kdxfZWzGjG1PzLZXKLWsV+H0EuYZa/EKIqq5WDvfwMc171532/ogxR5GRMMMCtsip+yfwtSOLIKobRynbhRLfQ2BPDbi/i2FCaeVwzXx/KvD593Y0r0Xcsyvi5tnfkr8/+OViz365S5L3vno6K4BMMgOgFRGQMSVmL6VPYJFC+9MOmCr1Et4frvllanCwt1LYbWWWzpI+L7AZ/TvdlGekJuZuQnbUOaNrRyXUwTQ5u4l7+eDVnB8nGAAPbPR9gwWzJxfPLYHv4SPlGk7h4u1p+SysGL2XwRmBlTTWs1oxggBryM5ArbT5kGS6u7ofkubwr4r7ZLDlM8jNPszBEh7jO6Cu8j8xd0LWAQtaxeRD/FZKO/wuLHDA1EkXJ88q/4cfahtOGmhu5N81l8ottWImTBI46i3L4KtDbt7rymttaLKeJWHLJlcjkIE9IaXnFTH7gwEeJ3I+ReCN/FVEqdvRPI0ErBLlk/dqlgqsmosIYHMDj7+qUF7lmD5o+Sz2DFITll+S8Mnbu0p+5PaxFKy5dQxB2VsD39EJ53LNA05a74voDupnsTz3EHv3cFUeFM9gmO+kd6ncaEnNYqrXRrXK9w7m1KqO1zM/4f1PJb+LTbT1ATqmxPWUq0wCh/yhHp83gWN/MiyYp/DVXqxMpNoEYQDlRoGu+QAHKwETfkdeF6LQ2xEcP+f8OJNK+y3FgoH5hEoXZC2g/yS6Tn/J8enGc4SUCZqrANdr6gSOaqQLlL/hRxuYwVw4VVMYvowZHbnGib2qaD9NISxIwJYQJjakPtm3qX4aSv1xByxbFqO8ggHko46+ItDw+6VsZHsBtUCcWVEjIEBiUFSnbB8u+Cdk+ZJbxC1SawPHO7Uxu5zMS2Uf3cn2rpfC96NOCsKB3Z9PhoL7QpDhX5qkXaR0M69pVHpfUfEi7akDTcHXpTSVbAIX0m6Bx/05KpOkzki3aWBxJcE9pKwn+YHIp8Wv2xAi9fdwHCdbzGtVwSQFO7DGZzn+dhyDrEnMucTwHmIV8JWv7PAbL6dxqfkC5Bxxdypj4prKfJBfNiTmeyt7XI8LXX5UM7N3p7n/tiw/AoWyVwpwPFPseY4vkIF9rymvM2ji9inQNWCTH2lWR1KX7PU3ztcryDh2I/CB9SL3Eb5vBGnG8hpnK/eNdCXVH/2ZFO77e5uMERkRF8aMP3Zy3EdzNWWRPnWh8v8lmvvBRWaSYdkS4g9TCA8Aa6TjOV1klZj30O3ncAMZqsdrcA1U3p5mUKu1bOkdMN5E3FtOLeMEGWEAZtsEhTky1fH8+4ibExqaNOoaMoLf21v57myCOXxt60jlFCw6W6oVIvdvaj6w8xwXKpgPuoYfaHjvTY6ZbwsymEunG15fQKYKkGtEdw3AsCGvYymVK/zcfQ3fb05TujWfY1eC50oKqIFZvsd5PJDKpZ7EdzXSZTEB8WmFTb8i+ek1kMace1HnqYVUOmMDP/t2VFpRoAvVUMcE/g11DaEs9yCH73wkyS0Bheu9VQyJW2qwMp91IAWq0u0kKZLx0yTljuXC2NEFgMk4Qc0/1eh3GnaRVoZJab+/3bko1ET1/9HXhX9HSbZ9HLOS5jHgCFO1bQpwhMzlYnjJYMpjDnzO9+6W5J37VFYPczDqGg+AvYjM50iaQ6Z2dn/wPk2/0YXAGafxtyCY7EQQ6UTQqkulCd9oT0n2TcPXt7XmatiO60m9tru0+zgrA3CEXKCA4/wU7DFJukh+WzJXF9Wfjp9bOcFU1+VWD3CEXCcpK5XSAsFNHp+tywnvuoGWT2WCa4TuEWWga5F9NNYmQAcC/yFSGmX/SzNdilmqO4LjoJQmXuTfu1vyu+NACe5JcIJP8GZJbsT7BUEXLOAkAhfYIyLQA8Te67MZmX8djU3sL6UbisVJHTKVHTgnwFwGk1lDkfem8uxF18NEy3mQHtXfYPKpWxAcqbFuuCxuy+C5d5L8FmB4PlMC/8YxmpvNtTPQHxnc77ni1/9gmpTdHz5TEztaFF+I36ZY07gQkh6ejwnfWcrue2KTV6XUiT2RTAJR9ajgHUGBKFVgUzLOaIP792kqzFXMzmIT+N1uTADHa8Xe/9HXpIPT/GCx5y9OJmhi7D7Qnvt2BKiGfBaLxT/fcgGfR31J7uXoIt+T2d5L39lS5V635fUtJWOGYjZ1zu/D1+Hn/VhhmN/TtP4ng+f+nJQWaMyna+G3gOfHM/pVuRcAsGu/VzA3l317ZotbJdVhKcDuRClgk7a0ACl8KM95fgd+EvRQnBUIINeJ0fK67CP5eZF70TR8ngxouNgDD2054RvTFLxaikf+JMu9V2F2WYKjKq3pxztWkiPbU2hJYBGfUuRujDkcPzCl33mtyKHdjWDc2GLpIOUKjVDg42zD11CY0E3CR62Fa0ltY3anhO8udZrkNzXpImV3GYhjey5rBQC8RsJn4NJAkNHHV/wLrYOFaW++EIAEi0RWelfP76FGeg+xNzH1AcgmUlqG1IBMxJb6sxLBNGql9jr9TdCQH9HciusQDdMM+XUbSpjd7ELJfhrwtyNbVsHxevq/shKABRo8HC1ht9qtbHI7lW0bxX+2q+Qn3/sKAlUzpKzftTrnbVQJtYjPPmR1WDWSmvaKaySO6es+2H5i3u7ARJziXHDoDYr2iL5VY4dJgZugFaLFl6UEil0kfZNRXdQazaYS7y9cTPMgErQ1W59sYS+ym9oJDAiJ8ojozuP9zy+CRQk3wVgqqwcMzBHmxdkZXwNMpNvomuhEMH5e3LMRlhc5WQFH4fp4vcBzIi3OtN3y0Qo4Cp996NLZXSU/8+HWBFP8Ru01Vx/knITzjkwBjgDUguvcC2GQkSDVYX/P7yyhyWLaF6KDOGzoLSUBFDWhvBknyLoxC7MFPxPRdDVd4Qf6zFyYVmPeA0DhyCJesHfR5FpWAb8NUxRpNd1lxZRnUqwLkwzivPxcs5x+lNJuTgsIZKEBEsp2OwXsWom9egbJ8rtrDBM9D1x2aXyDhMXEYGEd+fbiXEb3w8eFDkAIPxDy2XxrXOHYf1jMwY5/Hc+ha6dFXJRx23HCn6Q61w+Q0nrRt8S9WSuY6z8Sv+lYRcuwCgTHlhzPFRUcJ0nheYhQ4oeSPek+v8GS3+ru0gzAcWvJr5y5NQYcwe4GGt53TfOZYXn9VEnXqPiuEOAYCiBhep6X4nttDZRcPMB2uuX1oyW+SH6wpqEis3yA+Kf0QLuNL9JF2lH8HNqhJPIhbyErriAIWWg+LyysRwymJXI41W7ZKLO8PoN7uFAzgeMqUeBKQJBuYUqANGW2IBPg2hTXPTUlHmUGkBBsOPRmiu8h+tnTwM4WOHz39xh2Gsci4a9T87gOI1gvlPxgh4ssJlMoxr6S3bnAapTz70J7ryYrtsAXi0i2rebcpdFxFLFVfZiwuNSgB+bsERJ2v5no+tWA5Z2S7+/X2ePJlvfSAiTmLMoe03T8x3oM1iA4FEAuI9Ckyb9C0EPfytFl+8sZBhNbBb31Yr57tfYwBhVw79gT5gQNJP+VeMdzeUkfgn69cvo9+GY3X0FBEbmT6p7p8KUjwLK+9rnOnLsTpLS3ZZwCXqIRkTbaPP46g3u5Uvn/fIulp7NHMQDTUnGrx9ZjBige2CzFdSMdaVTIgQiZiwZGt5/4R3bh+L0hBUDqYPyvZjrHsUhodzV/DL6ejSxmxvMGANcFWh0Rv8/Ifq+UsPsQFyKI0L+jLaysZOMVFBzxzHejclCboKzBuaa6GyKfGnJ4kSe4o+NvnES2GMlPkk0+7naS3/XobrH7CHX2uCgli5yknfOyFNeNUuZzQg9G6GTdjwg2viZnP415uESxk1IIDjBob1Uu1gDVNNlmE2Bc+urBFEJOaB2e65siWsBI7kUOW68Mf6OFhK8BriwyiMoR8wWRXHUrAkSc35TSRha6EjlDkiuzALB6ee9x4uaK8hGsA9Xv95/E+wFV9igWq8kFIFU/PvyHvhuhgZztKwUkhGcFkKadDGHSnZLiXCqNd+lj96vDtV2Z4ONRN/baXco2VL2dZuqj4r8V7GNZPLACBAv1BbLdhhmcH8+sxwoKkEM1k3R/yfcdoh/BCDLAtgaTu3eC4kHmhRpwu0vs26EWIr01onKz2N1mTaSs73GOxfWQZF5H1h9q8H0rgeaRxGSSc1soQCItxuTfQkuqqzzPtSXNVHFkXyYGqacIobHBpjHngImjpsHcoI3JMk7OxnzQ7Tzu52cpiagvKrLF3I/ju0vg81b2DdAKET2VaiHBRjW3AXAIPLQ3fN9WjYbKFOTqqluY4Nll0Y0cUXe1iQki8XE7W54mZctL/05h6Y3XGKlPXf0SKiPT1rDbFgNAzhJzlj/kQvEvEo/a0n8lyfl7Js1m8n9eEnOOsZKfbd9ZzBuOw5RBU8/LPe/nUU7+YmvOC7/vq1x8awQ650uy4oqp9RbMU5QdjjGAnsmENsl12kLHettHsqng0vfMuVrskWsQhgGG12enMLGjru/wPR7vqZCj1ni6wL8bJPWpUID8goCym0Wr9vcEya15IAn7p4TPmhzHphzKJBZ5sWYKXyVlOxyP5ETfW/x7aALsd+BRkX7JpVK2FyH8tOg0c5YUnrc3SIqj9LIiBK4YdINqZADJXRxcRpsZ3B6HaCC0iM8ri7xbfc+cXyQ+73GAmP2Ef6cwsaN9ZgaK31YeJ4i5zro6mfqSYgBI2P9IM3hAzLWSEUj61ESez38/iPnMHDE7qG1J5pckmMKqKbGqgSniPnpSEaTNKwSLRO3sixW0iPGs7+BEnKe8jmalSJ7/VvyakOoyUcxdwlcEQb7elQSWYwysKon1YU5tpfyNjAq9yQPY1RsZXT/mvxooOkObIy7sMS1AvstznuRxvf3F3gTjRJKs8aEWTaGConA4ku+P8c8c4QGSu5Hxxe15YRt0W5liEovE5J6kaacuBlB+RwqLHGLSofb7Pcu1X0+m+XpGCwFOdTjeEUnVa2ThX32eizDt7oVIKH5YVlwBq0Jer16D/ZODyRclRcN6QUBH9e2jlHBoRteM+Xaw8jci7s+kYI+Qvwyv/ZGgVCdxXrpGrk8X+z5K2J8miroHaS8XAiDHKH6Y4yyfAd093MPcPocgYYsCz/LQYJFckQBcp2njMkzSZfInyX8EbD2V6XGaum9Tg2fRXPUfuggwebbjxNSVCvLyvqSGTrNveD9ZvjZESyOwqPQqGizcOH/cIjJJbGewtvL6MAJkFgIQvkdbp6fGfL5pDHu0rcu4e36BzHWA4/UiO8a2m0E1ztnITP88xACFBEgIUnXaWz63lNT4RodzwtfSkoxGPEzpOIA0pfHoD0t1+CKH8uKMJuYsMuUZGrDAFbA5merKAX8Piw+5nOiYslh5HjC5N5Syju7qvB6YKYPErdtzJFBqvWhZrKiCZ3e1Yc7GRYX/oGtH7WoziqQjq4YjsJzUtCPMkTh/aVKOom8e5PN0HSRt8xwFZOL8omdoYxdk/oVod1aN1LqxgtxbJ/hcwOYuSDgvHK1PiTk6igVt6rxzdwyLjcB8i5gJB839teKPgUZFTfNnGU3QLcm2amkMUzWvYG515JEk33HcNqHbYwYnCqLV0xK+i7QUBKg6WSb+/WRGroGmhrz27VdQkJwgZdPCkMKCoFgbi3JXFdGPnHt/Z3R9OPcHCkmaRFJg2/e+Na8pLg1nFQOLBPjNtJCE1rRmWiQod+zt81zCvbwnpQFUjPF6xcIgl2lo3Vnse+tGghSgpFyuwzjJplsGzZdBCtnZPgk+ETXQEBXN18lokqJW9wSD2RPJw/RnbRajPQFej5K1oQMKAi6H0Ld0EBn7NIdrGcHvwx/1rQHs8LzGUckMFHsjBvW6wNofkxVTTO6k+ZzXl/JQ/WSNNSW5T4bgiMT1odr67xcDjkJLImkdzPVgkE/TomyRcL49EsBxbTJRNbskWDArBIOMAE+P/J4rye2KDuWDsrXlupuDdIaBmpuqD85MMGMizbyB2LcnBSNGHbWaSA1T9OQMF9MwKdt4F0xtI43tbk1WAr8hoqNw/k+W8Ena1QhuZyQwQKR5jaQpOCZmTAG6O3IyI0etlcRnA7xBq2RDumxq8H5996+uKIH/fFeH59KC87GhYT1dmeH1oZDjROXv+8Wc/xvJerSsaiS4VmrHkChddqSFaDOvodSRRxq3TS6qeVDe3EF7fU8JlJcbCiC7i7k7+BGSHNWEL+4ZMe9FvIgM6nlHgATgPuJwvTDD4/bKWIMsqlEWg64JmANKHrsZ3kPg6NYKXuydqOmPlHi/KBgjUjbeJzP+VOL3B2pNwFybLgE1zQMMNdooqjYXABQBNsVCMLBHEYPj77yf6Qmfg1tluJjr42fSAhiXwfXtpa2nX2lax7HV5yS5cS3cOc0dAfITriVb8AlYgsY3vyWMHxSRXjGDQCTayQWpUw/VrOIzMUddh0pybt0rvElTf8eaNBO/d7yOmY6fGyTxm8NDex1vuJcWgSdrM/pOulnev4kmWUUKxv4UKo3+YvfHNqQSuYZA+Q+1/4MEvF3IBmuRaSL/FCklSIuJS4FZQPbyH8/XVIpXFnFhJ4FjPc57W/MQ3ONbZNAhBYHPBzTgOiIBHLuLW1fvmR7X8aDYc2aHUAHGgWMU7TeVE74sAZt4hALIxWIu+alBLZkEkp8RJMZazDPXKN4Mj4lyasJnntRYJsDscQnXgLYZF8EGymu4phu05/Oww7WWhwDwkH/WlSYXIu5xqRRgiRtzAcIP+irNyflkLd/SLB/Nya7KyXw9Or6jia2PV7HJGWTPSWb1u2SIOrB+kiFIrsT5q5q010tyo+trHM8/1WONri9lo+ELaSGcJPFNXrD+sHmeLZYQ1OcdysQWmsJPx2hWvP9Cwjka8AaT2nLZTOyW4haQgMB53Ebit3ioS/BWI2JXiv/WDLqga8kobbH3l9IE2D3oKlAd97dwAS4pMlBoycW+EzX62rLiykFUrDZZj8yxtWVtNOK86JaBuQ2gU/slQrltIfHNVMDkXHNah4i9GkYlOFAOW0p+UGUm1/MHSXglJcGv42LW9OoSsEFMyH6QL4u91XlNMsk+CeeYS81wQ8LnbI76Pzyud1VJDrwggfwAzZeGUsieBYzTmjSrbeAo9M9gkaj16KfR59KiyEDhV4J5XykJwLTgM7yaYDAt8O8tIVv5ULLppl2IINPA5oeDAvlIA8c5nEsRcZjNv0MzyV4aOCLId4gDkAzy+I0Jltf1wM22GjhOIFC7gOMQiU/je0QCd88KySAjLXJizPuI6qFWdZjDuTAQd4i5OQQCAdvEaJFVHK8XE3ItSd7DAot/qAbEm0hyT0oTOMJkVJNzz4sxY3Afz2m+FvhmDhRzuWKxCqKNiL6353hjHFbj4q/PQ82/RE3zlwRCBGemKP/+qrDo6mQtN0jxRLcvNQAL/Nm3adc4hcD1leEcYJLvSH5z3bRMcm2yxSbKa30kf3dPk+wsftsX2IKYq8esE2RB7ObgGqtBzEjyx68vbr1kKwwgNxO3Ep9TOWGSZEcp7ceoymQuNJOghK+DxzWfLcmpQRD4I9VUiA84YV2b4gIgXvUAx0gQ1EBe6ZEai7pISnIei8Xk3peL+N0U34WrY6Ly94ni1wUKvqsHimQcUC56vfLsbpWyAb+PybJ/jzmPyUftC5J1SSbU/V2u45xPElyjz/5CmNc/G17fjqRAF6Ry7SfJezdhDB+V5D3G35X4SrkKN7EjjfCBw+cwaS6X5C7db5J+6505WsWwRF+TboC4tfo6hawmEnRfudkDHHXmeJG4OcAXksFeqGnUq8gy1ikSYNjGUzHFiW/btKGS7N8uD/lLsTTaEJyON5iBPRLAMbJS9BZ5vub2vRo4viVuW6Lu6gmOC8S+j9SWhtcQlNvDARxhWYxwAEfITVk80OoZnNMVNC4kbU4Cpx/4sN7S/BE9AwFkS/pjXBYtHtTfGtM50REc1ca0SKC/wvM6ERw6WAOPrWiiHVME4DBQ4nNLsxb4cf+p4DG4ji6eQ0kWumruJTC3w8U9DaUQkDyH16G6LQ5wtDgGed73+Jjz6gHX67nekiyvKNq/m+PvZ6IgswBIIP4Ex88iBeRlSW51BM2MPDo1kHF4IICEuPYx/JkPV62QuF1Kt4rQZUM+ZB0cz005ttC822vsA5F/5BK+JuWzc2GxyjRHV0mWAr/qS2SJqs9vKs2/NNeXBiT316yTvwk0Lhto7Sb+W/faUnzWldJu6Vgzp9IFkZS214kmvuvWr1dKRlt+ZAGQiyW5xFCVHTkY6zqctz8Z22I+SJN5OTnFNW+omQIHxJjwr2gAhzF8yjCpNuQkXl1j1+cWOL4Yq2hjelV6chENkHC5mpVNZlfw74NF7669hqRoU//NrEAS5vtDyt+I6sLfaSu2QDlrzRRkQRVbECayruYRtF3jDshQWMvxtyeIW/Vc0QBkNCmmeHwenWqQ2rCzw2fvIhjAYW2qH52S8pqPVf5fi0C0ZowppUa1VyZwbqyBY1PtukN13P6dTPISzbSpT18M0km6VGKgSzsvtymie5jEedpXzI1k04LkhBiQhJJGjrBaJXa0mIMkEZg+I6WpMYh475Ti2ky+xDq8919IPp5zVDCInPu017tC7D0AihYgF0r8NgcmwaC8Km47tr1N+r2GRaOkkX2ltFvJe2S0o2NAEl141CqEJmQJZ9Gs1sGxv4Tt6wdgxAbrKAXTo5pdqXDukuIuzbNJmu5JtSX8To1pBKYeKoeQchK6M/wfBDUTSA7kv2rji3Ni2BXA9mWNWR6S8rpMuYd7cx1hnY51eN4Pctx8MClT9pglQEIeFvcaavV6bqTJmrSZ+lSN9UXyc0ogaqiYR7/waEvQbmZRAkhTUGuTcc2DNQ34UAbgqAp+Hy3mLtU0KQJZiKAi2Ry5gitJ5ZH/UgJkRac8wXpBzuoZKe/BRaZaQBLrRm2VdzXnog0cR5Jpqq6a/VNek4khf0GQTGLPa/Majkjxu5dlyR6zBsjFUrZNmasgkRXdYJKaXpoiYQsk/SbiasQtMkvW52QydbKZTVC1NZF9jCbOsowXJjT4IJr4eh4imC0CSd8R0KtVIIAgDei4jM49R/wzA0LKmxz/D8rht0wgqQrKUs+3vLeFAo4ipdkhSJ3bpABmq4vLnjD7EEjTuIM+y5o9Zg2QEPjl0rYIi/ySB6f4btps+t0UAFGbbnajb6dWjG/oKwuLLk9W8x0XDrSxXp0Al8FwLuBdKwhEkHZydobnv1UqZmvd16goZ5Xjb061EJC7xO6m2pAWUQSOuN4vlbmfVr7w/DzWEQKWz4qfv1GV0ySjyHV5AmR0I/NSfrc+WdgQ8dtAK23EsDkZoxj8R9vTT1LNApJI43hHex2NCzYv58W6jMCMsj6kesw3MAgors/JKMvT9L5MArXCj2HSfcS9q1MIgdLZV9wrqkIqm6cM4Ghz57Sj0ld9lG8rILNTyuuItn52FbitPpT8TfJ85VFJ7ppUaQASZsBFBZ7jRDIf104xzxfwW1HdM3r66cGPg6TsZkyquY2o5ePKa5iMiMptWQGsBtdzHhfGAwZtuxkX90Q+n/JogrG4HIDkBzIlpJr9neHvjOPzBiD/V87P9jSal6pFMyQGHNekwl/N4BaIpEfKa3lD3P2AB5Ftdi7g3lEMcE55DXT1cvod0OmPCjxHZyl1/LpM3m9T/k4XzXTSBQ/nBMt3F1KzD9ZA8g2yjIoQJFCj0mYDMuDFhsUDZof80adpKlZ0HmWhOzqCQZ5LN03oph7wcSPXdFPJbv/yOBkkZavVoAxOsoBjM7EXEYxSWF2zlNfzrMNnEKW+m+ShYYH3f66E7xBV4QAJP9xhUngpGPwVqNS5zsE0vC8AQNr8p+gytEeMiQsQPVlhbXUJPqdVIOggo6AvF8rlUrbrNZKF9+c9T6Z53qmCrnVuoPPgHuFvHRvofL/RwrhFyj9iXo3AeInBbWErPmjE52lyayDbI+px0C3lNYE5P5PwmbVpDocIzsElcGd5Dnr1cvwtPJDjA50Lm3ONFnMeZCRgS/+mOPd6UurEft9ipkXVM3HRtzvIGucp37mZfiK9NRdyGZGms0o5PAdoX+z33YqA+LqBebQkyH9Hk/VyCd/+P05CRv2xiPeT9H7wSEbSLVER+31jPj6mKdildD1dEvMdJGd3tbz/ivL/tAD5WALpAYn4nGy7UME6PEKyzwipMIAUUuzbAp0LjRo+I7iYBBG6YSnOC/MyqohZbDGzIfWoneP8ovCFIsKt7tdxPE0b1R/UkaAFN8Tq5fQsFlH7w4/WjqzclK6B1Bw0FvmaSg4NKQ4swCQrbwGL2kLSB25wz+h2jRSw3yvg+uECQfDvIM3MP0DsLeGiPVvidqR8Vfl/2kDiDTFs9xIqlSaBxgHWz9TyHvzQ/SBdBI5l+ORClYUtpPlu2u6hNc0I32aqaofvgyQ/8KJL1BE5rpt5O4Jpe+W1qWRwY/g3fu8EmiNbVRCY1CIYHC/5e6bEme0fkVXhGCfpEndh9qv9II9Kqdzg64KvdROyFozjRpIu9xOM5Qoq9IUV9DyQeoOMhFW164If/t0YcIJ76eiY8y6gtfIfP/+vxG9iZ5KXLW4mEIehBPBQYmpCvNwCpPCBAxjaBjrfUvo47je8d1cK0/4uKS20b0AGGJdmhBxIpPnENUuAJh2uAQ8WHjqc3M2/0XNycIrJmoVAuRzMY2PH78wnaOL4hYwLiuNPHjP4738JABnXMBfjuBa/E/0LxdOJ/y80ER5gcbuUti6rCIFCv4quJFVQFYUN8H5MAJOLE87/qpTmPcLVkqbBC3yx7xlcM2g71jngWDxIhbmsIh5ERQGkcFIjdSdkrbBpH+k0LBLXtbXy94tS0lI+TuCv3EXiUz5qcvHpDmuk4SCoM48m9m9FZqZ2IrPcgy6NGgFAaCqPaRwzNTPgNbpPGnJ+NOW4ABDTRrihvEZLSWrL11R8V0hp9cjfZF7Xit8WplkopicNriNcdx+JT0Y/Xtw6sav7wu8gyTsburBHKNFXAruI4KKC/7jCSkgrEiAhcCC/Jcl11z5yBTWoqnFuEb+tU/+h7yo6B3pPPuTwvdeo4ZNMsgH036g+4G/J1sZJcUsDLt4t+PxsTUMqWv6k+f8e59iXhoUGtrk27+lHCbifckrpRcak++1g5g9MAAoosGckOa6AOd1CSn2yJ4hfZHgZlYqaHN6DYNYw4Fi8TlKysCIfSEUDZKTBRgY2Kx8nLY8mfCOaJ6t5nAMLZxL/vzInlEuXmeeo6Zc43PeTGoPG9Z7OCbtMKo80o1kF/x+yADry30bl8NsYpykEuLE8Pk8wQ4tNYFmgAOEMA9MGgCXVHG9FQHFZQ29rbp7rDKZ8nAzj2opkNwJzyPXrYo2tMAAJ2ZH0POTOdAh27KNoSjit7/f4fk/JTwQGmLk6nh8l60wCubU4uXSfzSiaS5OkcstqNBlb8kBEtjkZEpRObR6NJD/nEg1Y/1CUxlyy+j/pfohM8yiXb0ElHiM0fUa6jB5JhkWBIN4PDu6PD8Q9WnykZg0BfA91/O4sKr9oTcFaGh543X7CtTe7GB5OsQBkVkxyAs87mebUS+JelK/vVY3I4QiP376FpnSS1OHv9NVeh/ZEes2tUjw7F2YlbSQ/SANz8mZZ/qUvn+/KBpZ2siTn8a5BN0Irx9+bS/NaPe+r4t5HE2z27gzBEUC/R7GAo0j550HGyVtkkiHrZ6PC+HZkc5iQrrlsrbW/wXB9nPcIGF3g8Ln5NFmOkPwKEqRLoMffx5K+DVVllX+X8/tbk8p6qAaOmF/7cT4kjQH8fS97gCPkacN5V3X8LtKK7s0QHEcVE3MsRoAUasPuUnab10IEWnY0QXKGuGfj69H1hTSdfQQBo36On0W+G3L39H3Fu/C1OyRc0m2xy6Ll9L6QZ4qyQKRB6XvXIFMCPlyX2maU2aKSayPP3x9meK25w/fmcN0szQgckT2wpxSBz7HYARLyI0Hy1YxAEn5Fl93lTBMnzeb0d3mYMFAM6PxzvQbi1WnyI9B0bJE+tyqJF7AjRH4RjFGzNv4iYwTwTHc81x3iv70E5tZ7DkTAJMjPRV4rfJXPBATHRTz3scWqFIt1of1JDXu2hAvzAyTfoHkD395nCZ83ldJ9bWB4SVKD2r6j4+dxv9jXBonnEwyT+R5e+47LMZisvBzdC0o1kdnwGv+vWw0dxa9qCFkOaRo/PGiwnND8JcnnD6vpIYLjQxKufyjmNnKNby/mh1fMTGQZmR7y7D4OdM61yCTBDlFCGNc1ZtUY7e0rDblIfBY+tD18j9ilUA/SbEqwh190Q1n+ZHnwQUIhw2eHaHRv7T1sR7ATzdY/PM65s6TbW3upmPN4k5K6wTpR1dSP368eaF3fybn9SbE/xMpgqmGCbcWHFKLCpC1BEkwtrgSxpeV1pPukaa0PpuDbqGMuGQO6rYwxvI9WXl+RgbRbjgByaSW+drD8wQSXfpJfdQRf3rlUar7VKwCzx1KuWQRzJlvWgk0QPOzDe7g3EFagCAI9GPpLuJZ2KxRAgrXVsywY5DBiX5XzPLWuDSSjJgs2v2J9i3/mP0nXSAFyJCedr6BR8Bb8vq4kqvF1tCaDv7P1cgCQdSrhNSN9Bj00J9FFUkebv/dw/qKU0TdvsxrnXNqy3Hssr8cFedBkGXmYNwYCxkPJGj+IYdxVAJkgs8nQjhRz04F/OQlhKsO5+0MBv4UH8iF9LLbz2FjZEElf6XJ3ysmwjGYOwP0cA4utSUYM5nIrx6iKQWYv8GkjZ3Min0t97f3X6BLBs0nbcg35tD1TfncqGaRJbH0gzyPTu6CAcUFXp2fpFtiY7Nf0XJuQoR5eBZBug3oeQQR5V+tbPoemDnDuopwNwYrHpezmVC6CQAyS01+waPWtY3wzadvtN5F00XD13gcTAGGu/W4ASiiPCZyUnaXyycJKcI3dOb4AxtMMrBflcj3oBvm6gN/pSFKQVmyFBrDUTJHwm8n0Tkj5exOoKJCfiZzON2LIBPqKIuUJFWr3FeNDLkYfJLbtvIjgNJYmSb0YVoUE80OkJPCCdAkEQ3y2dkAUD9FyU5pBnDk8pIB7BBs4uMBx+odj04aMW/dR1uBvIOKN+lsEpWpL5ZB6RXpdtcl0PqGLBuOrR3UxZ3cnA3snwPqEMq1VgEV2t+W93Q2gPorAf6Dn78yiGb893QiDJb4gYyMSjCe4bgdJxXZQsvs2iqjUUF/c8FVE9alwMA8k+LmYtjVpPmwlpZ1n0t7oRmLusFOD2jKtKfs72UHIygGwxVO5cGtaJjJqb+HP/aqInncbCdMwN0u2eATH1baP83sEhpckXKMRPMtbCvj+tWLfrwbdd/bSXkMQybUjzyRaXy9SAbvkMWINYvuOoxVyBoXSVdI1Wl5hATIyLb6Q/DytsTTB0ySRr8OJvj21Z0vH7yGt52TLe/0lXdpPJLfTHA4tiHgi+o0UjfqWzwAgkfSL8rMfKvhZ6wB5vNgDC+Ul7Wj6ARg7xFgwzxEYx2QwJt/EPL8k+Zf38LvFtfSruOc0wuUxgqD4FcnLL57z8TSuI/V+EPDsQjO7KKWYAVI4qKamBWOoHV+QdI0cEABCfmVvmtEdYj47l2D6j8U8R3XLminvbwkZ6ncZjV8TguSpEl9ShoX4FBf7N0UAkGpD1/IUBFP25bzYIOZzU8nCh3oChY+gnG+/Ar5/hdj3o09ipkvoQhhFMhJ1UPKV1lTUx4s5M6Gf+HXYqgJIA5DhAfWMofm3008zq4DfwWJALSg6iWwpZX2zemcfVQ6V5H59cfKSJHcrL1RqUxEcRQYdty3BNC4MJKG/UeC4FruJvQrHY0daFXHuksV8Vvf9P/bOBOiqsozjD1sGiMoyYoSG5ATiKMQMiyaFpUUqmQ06RRFMk6lTZuO0TGTJmGWrTTXWWJPVOI4bY5bCJEkRBiGLyqKoAQKiloDsGrHU9+v8j9/hcu797j13+c7y/GfeuR/3cpf3Pe/5v8/+aG2aWWFpotTWpOAajpDKHIdldnRHToj+YY35dZh+umhN0YwmW/nq89G2Jk6QdYAfuMoqd9F7TaoiNxXe73rCRJC6SPMj04FSadTbwyM5ocKGYFNdUMd3XiAyagVOkWRCrcx3WWVHHeu4VGu6SFLF1ib8plYRJPbDsbqBz5cW0dH8F0i6Zn+92oLrA6FQ/byeDKkpVr5fNdoOBYZfFwmHpFhvgWE+l+Z5MzrQyEz76QLLQLRCFgjSdMLPs+q87pyExAve1SDbxiCd6PdUkBpO1qbun/A7VupmbXX834k65S/VGlcToE2a3GKRJQfXUxUklc4kyDeLZCDEcXocVsX7DutAnC1SbHWrV8wLt9XxftT+Sh0Nh4nMmGO9hYb7ae9MrUIzCfGctLTtWSCerBAkoCx8rXmoz2qT32f1xaJVg/NlDkja0Gpanap6veilU/1ijVo2BofSGg3sqRtk/kDVq8ajW0qQ11h1RQy4IQdKKh4haf90/X2qVR/Gtl3Xbo4ed3TSNSCcZ53VVuMxiqUiqmaWDWNfhLZ7OhvWUrwC7WO89kcmkCWC7KLTcXrC9xMqNFdjfpM2EZJP0iDwTTrd96dkrbFRfVCkOd6SVXE5qJtii9TTnRr/lqS2O6L6Xht5360iK4p7UBqM0JPjNQaJQN6qv5OU3uL7H5P6PE9/p6Fq+wzt8SRYI5PQ1ibshVE6NCdrXyRprbtb5P24ZQhZIkjTzfB7q75tQjlAQsSt/Ulk+UQD1VsMz0mDyGnadEsK17231NSzRZYj65ByOgN7ZBZYqIGklTb7FwcQ4VZJesWvlomkUeTYU2Q7WcRYb5409s4LdSBlClkjyFAVfEinUaOAdPMX2WUgzifrlCgul7pcq3SDdEUmwrYMXIe+IspReiRc6R3W2Ba+SfCSDrwnI48bLP1dIpNKj43q4zJMpDhJWkOjekMRQI5T8EHLILJIkCFJPmD1eY4rYZ8kjr9pLEmgkpMqiSfxxBrfRxjJFZZdEG1AUP5pehwqaZNg4QEaSVNc9+gww2b4iswm2DmxX+I8es5a42luNAjDelprVQvm6DCudW+iIg+XRjBRxNiMajqQIx71P2R1M2eVIAEG7Tt1AZoNpMkVki7DUc2NSFwdDqIxNXwXkg4e1+WWX0CQtTSZ323ZrhHZEaiac1ON76EaOd7qalL0jhMZhoP9dUKT53RY9+bvsnxhskyQ4Un4bSufb9pMPCWbCvGLf7byoS4QOX1Irqvhs5drIx80R96BSWVlDSotxEPLkO9UMBvg2T9fWgyxrmdYawvTYHOcarW1SXaCbCJmWBCZ31nVaiAy4gL/KHUiLl0Pmynpc9Ua4bkJvuX8kWsQEoYJZ3wNhzKFbOPyvomjpXc7IThndeKcXpHk+GgeLlBeCBJQyYbg3iEp+C1h/OUDdmSTL2ynN1jgre4oXhLSJXtnifNIbnFzldoP9QButKAuwYGSPX+ZxtAUzIfoABwyW/JygfJEkIDIfmwzF6boN+FBxVlzv05+1KKRUpEmdfBeNhoFFLY5l+QOU3SIdgRqJpIk8WJKSTFU+9nPsyxnPc3zRpD/n5MFxSWo9tM7Zb/tBUmVxHIu1GZHlb6owntQ3bEnveackhuQgYI5ppzd8ZD2CSYW7JNjrT17ZWjK5oK29GmZCnKHPBJkiFOlknwopb+PdDbCNKgMg0ecEveXlPm/cyVxvO7cknlgb6Q4RJwXnzAm6mCSjUVM6WQdngNTOI8Dkhoh8f15vVh5JsgQxHjdIrU2zVgt9bucgX2Rbpgd5sgqyEq5t4zkSCQENrzRkjDT3NmRoG+iMtbl/YIVgSABIQ4E1H7DgmIGWcUmqTOPmCNLgBBxzn3JstGLvhywoV9fpP3XtSDzxIiMsZvCuHjZVmR0HgSekz++QFKGI/2YJUnrKxm+3yBGypqdXbTDuVufPscWab6osNSI/IWIhskPz9DGJZ2OVqO/Fkn+1xxpB04VakpiZybKoldGfjfFPIi8uFqa1zNFvHhFUbErgZJZlFCbljL1mw1KoYWwOC2PW8yRdXAgE9/6HmkBaaqKROwttlDSA4kpLnx4mRPkkSBnmhQpvMmntvB7cbysESEySDV82jzVsAiAIAn3oipSWBGJ0aNF379b2hSkSJWsXX5JnCCrAdIkIRYfsMD20oiYym0ivrV6DCtwN6OsP17QIRqn6Pcfr8dabr6dkd/OIJZzvbW+FUE9oNYi1YQGay2ihXh72dEeY8JtiEXcq0Nqn/4mjY4Of1utOb15QnTTdTtdZHmmCPSMBhAn1xNvOXGL8/W3H8ROkHVv2BHaqBQXoDRUPytfZZuK1dt1M5FJE5bjapbKws0+VkQ+UoNyY820rRK4vk5kj32KPGGChjda/T1qkqCryA9CGRZ5DHuwNHotIJXNuq7/iKwFgd3/atIce4gkR0UIk+t8UgnJ79UBtk3X4xn9tlW6Rm67doLMNcLOixP1eJaly9G0QwcDxEF85xJLVlOz0vxHR4hipAjxmJTM/yVrL9iLpLa4kw4NhxNkIYC0eo4IkfFOy17IyAGpcwuk2v1dknY1QBXGofFeDQ6ELhma+2GRZTh3Hj0rygnSkRAY7idonCtVqkvO5rhfUuUjIoxon5i+MhlQy5BeK+MsebfItM79rxbkY8+TecLhBJkKcMNhqKa7WhpsMd0kEaIqhxWfBxVwL/5HRIHTZFjB5v6yDgq8yfRGSls4F849Cj9vLdqmLCJBQj6E0eClpLEW5dGebuH3s9FGR9RlJMTeOVtjHAQbrN1BtVkqJSRIzxqcXHhoL63is3AqYMfcF923umkxM9DzZ4ils6BDUrBeZK9gx1ypw/zlFv8GDqlLNPpLii9cCFBRVWy80QTEDtC/CbeZLbXnMWusfQhCIM5tjKREbIk9c7aeOCHITlohUqzkjMGjfE3b+GzJwQCprhd5Dok8j5RPgYebRRaV1hmV/DwR78k5W2M8409ojRdrn25v8HeM1tp9xIKoDYAnHFOPZ9IUDORlz425kQ7pJmdD0CVvrVSef+oEjTaQOkZkR4jFWyTF8DhUElIYYpJHINndLSm8mqouHAzXWpALH9oT8fDeY0GA8sbI/2X9PmpBdtPwyPOooT+0oFxYJfNIF0k8fMbluiZ5BHt0iQ6OZyVlhnGa5ZqcddU+DTtOniaBYUzMXmXfT7IC20iL7qQZIBV7kjmqAQcHVbDv6kCai5oTLhMxhp0dd0ra/JkF1Yk6Au+jVuZUa4/144alhB1dLTuqRdhVUuXHJBn1Lci14iB/VWOPTBJEQ2Bi6l7F+7GHfsKC4PjCwr3YgbRBQj6FP08wRyleECnea/HNouKAXfBKCyq7nxRRoanyTt/vvQlNFVdIPQ8/k5v3pxY0bKsmCB+J//1t4+MW1Gbs7Zf3KGAemSVJ/XDhycEJ8g2gdtBCdrrlK6SkHlK8z9r76FQDMllmWtBlMgzaxizxvbbxk4TEWIqeIt+ZIk1APOVvLLBTbq7hcy6UhOtkGYDeSdfVsIZOkAXEabr5plp6MjPSTIoAL+fXRVyhGsz7aXP7NWtOimVfSf1XWXuM6H5JkzxfS0hKkcmS60T/m29a4ARyOEFWrdLRg/gz1trKPlkhRfAmqdE3lJgnlom4Hm/BHLBR/tyCSIEQ2N9uahs/tvbg81rIkgIlOJPoZ3RcTq89HvDbtXbP++3uBJl4jSwI3sZuhZE/6wu2QRJDUlIMQcrfrXakl3mfJEnU6UMtnBOOmKulYveJPI93nXCieQk/N7RZEvryYcu+gwdnDREDd2pNDvjt7QTZaLIkVozmWbRiJR2uR8p/M1VnyHumeyJdFFc1QLL+kQ6MKGgqNq2TpZGTpWKX9kXH645trZ4Sbdilz5UKfnHJwZBm4PEnPIpGW48mkKidIB2JQVrcOZIwx0rd6+yMDhwW2JLou73AgljDvQ36bEiRVroDIs8hhVCS//stlhor4Sr9zqgNGWfRTBFoI7yzg3VIIkmTAHBKCua9V+YNxlLtga1+mzpBpgksKMUlCL6lBBf1I4fqBure4O/CjrRGg3S85ZIQG606QYi/lJoZxVqRZhqN+6z/bF2DUkl3hjW+ZelAHZLjdf1JFHi7NT4iApMI5dTWy1xCgHhYfPl581qPTpAZRZg3PFg30wCpqxS77aMbqfQxzNrBdkSq2TapiRt1c7SixuBEqailG+UOSWqvpXjNcbDcKZU4Cmyln7MgNKiZ6KHDMbzmg7QHkGzDXPLjJHnv0bXeLZLbpbXdLimQmM8Xdf3ddugE6ejsvSGV9EY7svYkN/EXLAjQzsrBhEf7qzGv0R0SJ47XZnQ4QTpqkrzIsZ5c8jwSDbnNczI4p0+1jdtizByEIhGdsMkvuyPudHU4oqDAxtIYctwmdXtORud1u1TtUmlxtOb7br/0DidIRyVQTHiJHV2wFqcA3tplGZ/fw5pjaV1D7IKEwnzSt4DDCdIRB9IEaQFQWrADxwBhLKtzMk9iQifY0emPOFR+a0HKXRffDg4nSIeJDCjSQXxg9xi1GslxXc7mvFrziivldb3U8W6+NRxOkMUGUhOe3DgP7y6RyHM5nTskSaB3XKjUjLZxvwWJAA4nSEcBQaEJyltNj3kNR8ZFOVKrK5EkFXziMoAoVPGQk6QTpKN44KbHGz055jXiHKm+vagga0HRhs+Xee08J8lio1ufPsf6KhRPcnxQ6mUcviy1u0jAO0+my5iY1yh1R/rg3ZaeXHOHS5COJgCHzB0VyPFXbeMHBV0bpMj5ZV57nw4N9267BOnIMUi5u7rMaxS6mFJgKemwJGtqP/aPef1Mrc1C30YFkig81bAwoH4hFV/iwlfofEdGiafbBUHyBMvHNXDbrXVa78vkKrYjX6CH8tvaxhclLUZxpZPjG6B8GJ7tg/o3VXYIIMdh08/J0SVIRzFArUIak1Fh+ru+HEdhnAVxoivMq/04QTocDofDVWyHw+FwgnQ4HA4nSIfD4XCCdDgcDidIh8Ph6HT8T4ABAB91/nepRFURAAAAAElFTkSuQmCC</xsl:text>
1046
964
  </xsl:variable>
1047
965
 
1048
- <xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="titles_">
1049
-
1050
- <title-annex lang="en">Annex </title-annex>
1051
- <title-annex lang="fr">Annexe </title-annex>
1052
-
1053
- <title-annex lang="zh">Annex </title-annex>
1054
-
1055
-
966
+ <xsl:variable name="pageWidth_">
967
+ 210
968
+ </xsl:variable><xsl:variable name="pageWidth" select="normalize-space($pageWidth_)"/><xsl:variable name="pageHeight_">
969
+ 297
970
+ </xsl:variable><xsl:variable name="pageHeight" select="normalize-space($pageHeight_)"/><xsl:variable name="titles_">
1056
971
 
1057
972
  <title-edition lang="en">
1058
973
 
1059
- <xsl:text>Edition </xsl:text>
1060
-
1061
-
974
+ <xsl:text>Edition </xsl:text>
975
+
1062
976
  </title-edition>
1063
977
 
1064
978
  <title-edition lang="fr">
1065
-
1066
- <xsl:text>Édition </xsl:text>
1067
-
979
+ <xsl:text>Édition </xsl:text>
1068
980
  </title-edition>
1069
981
 
1070
-
982
+ <!-- These titles of Table of contents renders different than determined in localized-strings -->
1071
983
  <title-toc lang="en">
1072
984
 
1073
985
  <xsl:text>Contents</xsl:text>
@@ -1076,24 +988,13 @@
1076
988
 
1077
989
  </title-toc>
1078
990
  <title-toc lang="fr">
991
+ <xsl:text>Sommaire</xsl:text>
992
+ </title-toc>
993
+ <title-toc lang="zh">
1079
994
 
1080
- <xsl:text>Sommaire</xsl:text>
1081
-
1082
-
1083
- </title-toc>
1084
-
1085
- <title-toc lang="zh">Contents</title-toc>
1086
-
1087
-
1088
-
1089
- <title-page lang="en">Page</title-page>
1090
- <title-page lang="fr">Page</title-page>
1091
-
1092
- <title-key lang="en">Key</title-key>
1093
- <title-key lang="fr">Légende</title-key>
1094
-
1095
- <title-where lang="en">where</title-where>
1096
- <title-where lang="fr">où</title-where>
995
+ <xsl:text>Contents</xsl:text>
996
+
997
+ </title-toc>
1097
998
 
1098
999
  <title-descriptors lang="en">Descriptors</title-descriptors>
1099
1000
 
@@ -1109,32 +1010,9 @@
1109
1010
  </title-part>
1110
1011
  <title-part lang="zh">第 # 部分:</title-part>
1111
1012
 
1112
- <title-subpart lang="en">
1113
-
1114
- </title-subpart>
1115
- <title-subpart lang="fr">
1116
-
1117
- </title-subpart>
1118
-
1119
- <title-modified lang="en">modified</title-modified>
1120
- <title-modified lang="fr">modifiée</title-modified>
1121
-
1122
- <title-modified lang="zh">modified</title-modified>
1123
-
1124
-
1013
+ <title-subpart lang="en">Sub-part #</title-subpart>
1014
+ <title-subpart lang="fr">Partie de sub #</title-subpart>
1125
1015
 
1126
- <title-source lang="en">
1127
-
1128
- <xsl:text>SOURCE</xsl:text>
1129
-
1130
-
1131
- </title-source>
1132
-
1133
- <title-keywords lang="en">Keywords</title-keywords>
1134
-
1135
- <title-deprecated lang="en">DEPRECATED</title-deprecated>
1136
- <title-deprecated lang="fr">DEPRECATED</title-deprecated>
1137
-
1138
1016
  <title-list-tables lang="en">List of Tables</title-list-tables>
1139
1017
 
1140
1018
  <title-list-figures lang="en">List of Figures</title-list-figures>
@@ -1143,41 +1021,12 @@
1143
1021
 
1144
1022
  <title-list-recommendations lang="en">List of Recommendations</title-list-recommendations>
1145
1023
 
1146
- <title-acknowledgements lang="en">Acknowledgements</title-acknowledgements>
1147
-
1148
- <title-abstract lang="en">Abstract</title-abstract>
1149
-
1150
1024
  <title-summary lang="en">Summary</title-summary>
1151
1025
 
1152
- <title-in lang="en">in </title-in>
1153
-
1154
- <title-partly-supercedes lang="en">Partly Supercedes </title-partly-supercedes>
1155
- <title-partly-supercedes lang="zh">部分代替 </title-partly-supercedes>
1156
-
1157
- <title-completion-date lang="en">Completion date for this manuscript</title-completion-date>
1158
- <title-completion-date lang="zh">本稿完成日期</title-completion-date>
1159
-
1160
- <title-issuance-date lang="en">Issuance Date: #</title-issuance-date>
1161
- <title-issuance-date lang="zh"># 发布</title-issuance-date>
1162
-
1163
- <title-implementation-date lang="en">Implementation Date: #</title-implementation-date>
1164
- <title-implementation-date lang="zh"># 实施</title-implementation-date>
1165
-
1166
- <title-obligation-normative lang="en">normative</title-obligation-normative>
1167
- <title-obligation-normative lang="zh">规范性附录</title-obligation-normative>
1168
-
1169
- <title-caution lang="en">CAUTION</title-caution>
1170
- <title-caution lang="zh">注意</title-caution>
1171
-
1172
- <title-warning lang="en">WARNING</title-warning>
1173
- <title-warning lang="zh">警告</title-warning>
1174
-
1175
- <title-amendment lang="en">AMENDMENT</title-amendment>
1176
-
1177
1026
  <title-continued lang="en">(continued)</title-continued>
1178
1027
  <title-continued lang="fr">(continué)</title-continued>
1179
1028
 
1180
- </xsl:variable><xsl:variable name="bibdata">
1029
+ </xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="bibdata">
1181
1030
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
1182
1031
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
1183
1032
  </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
@@ -1206,12 +1055,79 @@
1206
1055
  </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="linebreak" select="'&#8232;'"/><xsl:attribute-set name="root-style">
1207
1056
 
1208
1057
 
1058
+
1059
+
1060
+
1061
+
1062
+
1063
+
1064
+
1065
+
1066
+
1067
+
1068
+
1069
+
1070
+
1071
+
1072
+ <xsl:attribute name="font-family">Times New Roman, STIX Two Math, Source Han Sans</xsl:attribute>
1073
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1074
+
1075
+ </xsl:attribute-set><xsl:attribute-set name="copyright-statement-style">
1076
+
1077
+ </xsl:attribute-set><xsl:attribute-set name="copyright-statement-title-style">
1078
+
1079
+
1080
+ </xsl:attribute-set><xsl:attribute-set name="copyright-statement-p-style">
1081
+
1082
+
1083
+
1084
+ </xsl:attribute-set><xsl:attribute-set name="license-statement-style">
1085
+
1086
+
1087
+ </xsl:attribute-set><xsl:attribute-set name="license-statement-title-style">
1088
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1089
+
1090
+
1091
+
1092
+
1093
+
1094
+
1095
+ </xsl:attribute-set><xsl:attribute-set name="license-statement-p-style">
1096
+
1097
+
1098
+
1099
+
1100
+ </xsl:attribute-set><xsl:attribute-set name="legal-statement-style">
1101
+
1102
+
1103
+
1104
+ </xsl:attribute-set><xsl:attribute-set name="legal-statement-title-style">
1105
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1106
+
1107
+
1108
+
1109
+
1110
+
1111
+ </xsl:attribute-set><xsl:attribute-set name="legal-statement-p-style">
1112
+
1113
+ </xsl:attribute-set><xsl:attribute-set name="feedback-statement-style">
1114
+
1115
+
1116
+ </xsl:attribute-set><xsl:attribute-set name="feedback-statement-title-style">
1117
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1118
+
1119
+ </xsl:attribute-set><xsl:attribute-set name="feedback-statement-p-style">
1120
+
1121
+
1209
1122
  </xsl:attribute-set><xsl:attribute-set name="link-style">
1210
1123
 
1211
1124
 
1212
1125
 
1213
1126
 
1214
1127
 
1128
+ </xsl:attribute-set><xsl:attribute-set name="sourcecode-container-style">
1129
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
1130
+
1215
1131
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
1216
1132
  <xsl:attribute name="white-space">pre</xsl:attribute>
1217
1133
  <xsl:attribute name="wrap-option">wrap</xsl:attribute>
@@ -1221,14 +1137,21 @@
1221
1137
 
1222
1138
 
1223
1139
 
1224
- <xsl:attribute name="font-family">Courier New</xsl:attribute>
1225
- <xsl:attribute name="margin-top">6pt</xsl:attribute>
1226
- <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1140
+
1141
+
1142
+
1143
+
1227
1144
 
1228
1145
 
1229
1146
 
1230
1147
 
1231
1148
 
1149
+
1150
+
1151
+ <xsl:attribute name="font-family">Courier New</xsl:attribute>
1152
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
1153
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1154
+
1232
1155
  </xsl:attribute-set><xsl:attribute-set name="permission-style">
1233
1156
 
1234
1157
  </xsl:attribute-set><xsl:attribute-set name="permission-name-style">
@@ -1277,11 +1200,14 @@
1277
1200
 
1278
1201
 
1279
1202
 
1203
+
1280
1204
  </xsl:attribute-set><xsl:attribute-set name="example-body-style">
1281
1205
 
1282
1206
 
1283
1207
 
1208
+
1284
1209
  </xsl:attribute-set><xsl:attribute-set name="example-name-style">
1210
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1285
1211
 
1286
1212
 
1287
1213
 
@@ -1298,7 +1224,6 @@
1298
1224
  <xsl:attribute name="font-size">10pt</xsl:attribute>
1299
1225
  <xsl:attribute name="font-weight">bold</xsl:attribute>
1300
1226
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1301
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
1302
1227
 
1303
1228
 
1304
1229
 
@@ -1316,6 +1241,7 @@
1316
1241
 
1317
1242
 
1318
1243
 
1244
+
1319
1245
  <xsl:attribute name="font-size">11pt</xsl:attribute>
1320
1246
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
1321
1247
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
@@ -1332,58 +1258,49 @@
1332
1258
 
1333
1259
  </xsl:attribute-set><xsl:variable name="table-border_">
1334
1260
 
1335
- </xsl:variable><xsl:variable name="table-border" select="normalize-space($table-border_)"/><xsl:attribute-set name="table-name-style">
1336
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
1337
-
1338
-
1261
+ </xsl:variable><xsl:variable name="table-border" select="normalize-space($table-border_)"/><xsl:attribute-set name="table-container-style">
1262
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
1263
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
1339
1264
 
1340
1265
 
1341
1266
 
1342
-
1343
1267
 
1344
1268
 
1345
1269
 
1346
-
1347
1270
 
1348
- <xsl:attribute name="font-weight">bold</xsl:attribute>
1349
- <xsl:attribute name="text-align">left</xsl:attribute>
1350
- <xsl:attribute name="margin-top">12pt</xsl:attribute>
1351
- <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
1352
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
1353
- <xsl:attribute name="text-indent">0mm</xsl:attribute>
1354
1271
 
1355
1272
 
1356
1273
 
1357
1274
 
1358
- </xsl:attribute-set><xsl:attribute-set name="table-footer-cell-style">
1359
1275
 
1360
- </xsl:attribute-set><xsl:attribute-set name="appendix-style">
1361
1276
 
1362
1277
 
1363
1278
 
1364
- </xsl:attribute-set><xsl:attribute-set name="appendix-example-style">
1365
1279
 
1366
1280
 
1367
1281
 
1368
- </xsl:attribute-set><xsl:attribute-set name="xref-style">
1282
+
1369
1283
 
1370
1284
 
1285
+ <xsl:attribute name="space-after">12pt</xsl:attribute>
1371
1286
 
1287
+ </xsl:attribute-set><xsl:attribute-set name="table-style">
1288
+ <xsl:attribute name="table-omit-footer-at-break">true</xsl:attribute>
1289
+ <xsl:attribute name="table-layout">fixed</xsl:attribute>
1290
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
1291
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
1372
1292
 
1373
1293
 
1374
- </xsl:attribute-set><xsl:attribute-set name="eref-style">
1375
1294
 
1376
1295
 
1377
1296
 
1378
1297
 
1379
1298
 
1380
1299
 
1381
- </xsl:attribute-set><xsl:attribute-set name="note-style">
1382
1300
 
1383
1301
 
1384
1302
 
1385
1303
 
1386
-
1387
1304
 
1388
1305
 
1389
1306
 
@@ -1392,69 +1309,80 @@
1392
1309
 
1393
1310
 
1394
1311
 
1312
+
1395
1313
 
1396
- <xsl:attribute name="margin-top">3pt</xsl:attribute>
1397
- <xsl:attribute name="border-top">0.1mm solid black</xsl:attribute>
1398
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1314
+ </xsl:attribute-set><xsl:attribute-set name="table-name-style">
1315
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1316
+
1399
1317
 
1400
1318
 
1401
1319
 
1402
- </xsl:attribute-set><xsl:variable name="note-body-indent">10mm</xsl:variable><xsl:variable name="note-body-indent-table">5mm</xsl:variable><xsl:attribute-set name="note-name-style">
1403
1320
 
1321
+
1404
1322
 
1405
1323
 
1406
1324
 
1325
+
1407
1326
 
1327
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1328
+ <xsl:attribute name="text-align">left</xsl:attribute>
1329
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
1330
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
1331
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1332
+ <xsl:attribute name="text-indent">0mm</xsl:attribute>
1408
1333
 
1409
1334
 
1410
1335
 
1411
1336
 
1337
+ </xsl:attribute-set><xsl:attribute-set name="table-row-style">
1338
+ <xsl:attribute name="min-height">4mm</xsl:attribute>
1412
1339
 
1413
1340
 
1414
1341
 
1415
1342
 
1416
- </xsl:attribute-set><xsl:attribute-set name="table-note-name-style">
1343
+ </xsl:attribute-set><xsl:attribute-set name="table-header-row-style" use-attribute-sets="table-row-style">
1344
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1417
1345
 
1418
1346
 
1419
1347
 
1420
1348
 
1421
- </xsl:attribute-set><xsl:attribute-set name="note-p-style">
1422
1349
 
1423
1350
 
1424
1351
 
1425
1352
 
1426
1353
 
1354
+ </xsl:attribute-set><xsl:attribute-set name="table-footer-row-style" use-attribute-sets="table-row-style">
1427
1355
 
1428
1356
 
1429
1357
 
1358
+ </xsl:attribute-set><xsl:attribute-set name="table-body-row-style" use-attribute-sets="table-row-style">
1359
+
1360
+ </xsl:attribute-set><xsl:attribute-set name="table-header-cell-style">
1361
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1362
+ <xsl:attribute name="border">solid black 1pt</xsl:attribute>
1363
+ <xsl:attribute name="padding-left">1mm</xsl:attribute>
1364
+ <xsl:attribute name="display-align">center</xsl:attribute>
1430
1365
 
1431
1366
 
1432
1367
 
1433
- <xsl:attribute name="margin-top">3pt</xsl:attribute>
1434
- <!-- <xsl:attribute name="border-top">0.1mm solid black</xsl:attribute> -->
1435
- <xsl:attribute name="space-after">12pt</xsl:attribute>
1436
- <xsl:attribute name="text-indent">0</xsl:attribute>
1437
- <xsl:attribute name="padding-top">1.5mm</xsl:attribute>
1438
1368
 
1439
1369
 
1440
1370
 
1441
- </xsl:attribute-set><xsl:attribute-set name="termnote-style">
1442
1371
 
1443
1372
 
1444
1373
 
1445
1374
 
1446
-
1447
- <xsl:attribute name="margin-top">4pt</xsl:attribute>
1448
1375
 
1449
1376
 
1450
1377
 
1451
- </xsl:attribute-set><xsl:attribute-set name="termnote-name-style">
1378
+ <xsl:attribute name="text-indent">0mm</xsl:attribute>
1452
1379
 
1453
-
1380
+ </xsl:attribute-set><xsl:attribute-set name="table-cell-style">
1381
+ <xsl:attribute name="display-align">center</xsl:attribute>
1382
+ <xsl:attribute name="border">solid black 1pt</xsl:attribute>
1383
+ <xsl:attribute name="padding-left">1mm</xsl:attribute>
1454
1384
 
1455
1385
 
1456
- </xsl:attribute-set><xsl:attribute-set name="quote-style">
1457
- <xsl:attribute name="role">BlockQuote</xsl:attribute>
1458
1386
 
1459
1387
 
1460
1388
 
@@ -1462,29 +1390,32 @@
1462
1390
 
1463
1391
 
1464
1392
 
1465
- </xsl:attribute-set><xsl:attribute-set name="quote-source-style">
1466
1393
 
1467
-
1468
-
1469
- </xsl:attribute-set><xsl:attribute-set name="termsource-style">
1470
1394
 
1471
1395
 
1472
1396
 
1397
+ <xsl:attribute name="text-indent">0mm</xsl:attribute>
1398
+
1473
1399
 
1400
+ </xsl:attribute-set><xsl:attribute-set name="table-footer-cell-style">
1401
+ <xsl:attribute name="border">solid black 1pt</xsl:attribute>
1402
+ <xsl:attribute name="padding-left">1mm</xsl:attribute>
1403
+ <xsl:attribute name="padding-right">1mm</xsl:attribute>
1404
+ <xsl:attribute name="padding-top">1mm</xsl:attribute>
1474
1405
 
1475
1406
 
1476
1407
 
1477
- </xsl:attribute-set><xsl:attribute-set name="origin-style">
1478
1408
 
1479
1409
 
1480
1410
 
1481
1411
 
1482
- </xsl:attribute-set><xsl:attribute-set name="term-style">
1412
+
1483
1413
 
1484
- </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
1485
1414
 
1486
1415
 
1487
-
1416
+ </xsl:attribute-set><xsl:attribute-set name="table-note-style">
1417
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1418
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1488
1419
 
1489
1420
 
1490
1421
 
@@ -1493,37 +1424,235 @@
1493
1424
 
1494
1425
 
1495
1426
 
1427
+ </xsl:attribute-set><xsl:attribute-set name="table-fn-style">
1428
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1496
1429
 
1497
1430
 
1498
1431
 
1499
1432
 
1500
-
1501
1433
 
1502
1434
 
1435
+ </xsl:attribute-set><xsl:attribute-set name="table-fn-number-style">
1436
+ <xsl:attribute name="font-size">80%</xsl:attribute>
1437
+ <xsl:attribute name="padding-right">5mm</xsl:attribute>
1503
1438
 
1504
- <xsl:attribute name="text-align">center</xsl:attribute>
1505
- <xsl:attribute name="font-size">9pt</xsl:attribute>
1506
- <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1507
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
1508
- <xsl:attribute name="keep-together.within-column">always</xsl:attribute>
1509
1439
 
1510
-
1511
- </xsl:attribute-set><xsl:attribute-set name="formula-style">
1512
1440
 
1513
- </xsl:attribute-set><xsl:attribute-set name="image-style">
1514
- <xsl:attribute name="text-align">center</xsl:attribute>
1515
1441
 
1516
1442
 
1517
1443
 
1518
1444
 
1519
1445
 
1520
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1521
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
1522
1446
 
1523
1447
 
1524
- </xsl:attribute-set><xsl:attribute-set name="figure-pseudocode-p-style">
1525
1448
 
1526
- </xsl:attribute-set><xsl:attribute-set name="image-graphic-style">
1449
+
1450
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
1451
+
1452
+ </xsl:attribute-set><xsl:attribute-set name="fn-container-body-style">
1453
+ <xsl:attribute name="text-indent">0</xsl:attribute>
1454
+ <xsl:attribute name="start-indent">0</xsl:attribute>
1455
+
1456
+
1457
+ </xsl:attribute-set><xsl:attribute-set name="table-fn-body-style">
1458
+
1459
+ </xsl:attribute-set><xsl:attribute-set name="figure-fn-number-style">
1460
+ <xsl:attribute name="font-size">80%</xsl:attribute>
1461
+ <xsl:attribute name="padding-right">5mm</xsl:attribute>
1462
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
1463
+
1464
+ </xsl:attribute-set><xsl:attribute-set name="figure-fn-body-style">
1465
+ <xsl:attribute name="text-align">justify</xsl:attribute>
1466
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1467
+
1468
+ </xsl:attribute-set><xsl:attribute-set name="dt-row-style">
1469
+
1470
+
1471
+ </xsl:attribute-set><xsl:attribute-set name="dt-style">
1472
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
1473
+
1474
+
1475
+
1476
+
1477
+
1478
+
1479
+
1480
+
1481
+
1482
+
1483
+ </xsl:attribute-set><xsl:attribute-set name="appendix-style">
1484
+
1485
+
1486
+
1487
+ </xsl:attribute-set><xsl:attribute-set name="appendix-example-style">
1488
+
1489
+
1490
+
1491
+ </xsl:attribute-set><xsl:attribute-set name="xref-style">
1492
+
1493
+
1494
+
1495
+
1496
+
1497
+ </xsl:attribute-set><xsl:attribute-set name="eref-style">
1498
+
1499
+
1500
+
1501
+
1502
+
1503
+
1504
+ </xsl:attribute-set><xsl:attribute-set name="note-style">
1505
+
1506
+
1507
+
1508
+
1509
+
1510
+
1511
+
1512
+
1513
+
1514
+
1515
+
1516
+
1517
+
1518
+
1519
+ <xsl:attribute name="margin-top">3pt</xsl:attribute>
1520
+ <xsl:attribute name="border-top">0.1mm solid black</xsl:attribute>
1521
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1522
+
1523
+
1524
+
1525
+ </xsl:attribute-set><xsl:variable name="note-body-indent">10mm</xsl:variable><xsl:variable name="note-body-indent-table">5mm</xsl:variable><xsl:attribute-set name="note-name-style">
1526
+
1527
+
1528
+
1529
+
1530
+
1531
+
1532
+
1533
+
1534
+
1535
+
1536
+
1537
+
1538
+
1539
+ </xsl:attribute-set><xsl:attribute-set name="table-note-name-style">
1540
+ <xsl:attribute name="padding-right">2mm</xsl:attribute>
1541
+
1542
+
1543
+
1544
+
1545
+ </xsl:attribute-set><xsl:attribute-set name="note-p-style">
1546
+
1547
+
1548
+
1549
+
1550
+
1551
+
1552
+
1553
+
1554
+
1555
+
1556
+
1557
+ <xsl:attribute name="margin-top">3pt</xsl:attribute>
1558
+ <!-- <xsl:attribute name="border-top">0.1mm solid black</xsl:attribute> -->
1559
+ <xsl:attribute name="space-after">12pt</xsl:attribute>
1560
+ <xsl:attribute name="text-indent">0</xsl:attribute>
1561
+ <xsl:attribute name="padding-top">1.5mm</xsl:attribute>
1562
+
1563
+
1564
+
1565
+ </xsl:attribute-set><xsl:attribute-set name="termnote-style">
1566
+
1567
+
1568
+
1569
+
1570
+
1571
+ <xsl:attribute name="margin-top">4pt</xsl:attribute>
1572
+
1573
+
1574
+
1575
+ </xsl:attribute-set><xsl:attribute-set name="termnote-name-style">
1576
+
1577
+
1578
+
1579
+
1580
+ </xsl:attribute-set><xsl:attribute-set name="quote-style">
1581
+ <xsl:attribute name="role">BlockQuote</xsl:attribute>
1582
+
1583
+
1584
+
1585
+
1586
+
1587
+
1588
+
1589
+ </xsl:attribute-set><xsl:attribute-set name="quote-source-style">
1590
+
1591
+
1592
+
1593
+ </xsl:attribute-set><xsl:attribute-set name="termsource-style">
1594
+
1595
+
1596
+
1597
+
1598
+
1599
+
1600
+
1601
+ </xsl:attribute-set><xsl:attribute-set name="termsource-text-style">
1602
+
1603
+
1604
+ </xsl:attribute-set><xsl:attribute-set name="origin-style">
1605
+
1606
+
1607
+
1608
+
1609
+ </xsl:attribute-set><xsl:attribute-set name="term-style">
1610
+
1611
+ </xsl:attribute-set><xsl:attribute-set name="figure-style">
1612
+
1613
+ </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
1614
+
1615
+
1616
+
1617
+
1618
+
1619
+
1620
+
1621
+
1622
+
1623
+
1624
+
1625
+
1626
+
1627
+
1628
+
1629
+
1630
+
1631
+
1632
+
1633
+ <xsl:attribute name="text-align">center</xsl:attribute>
1634
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
1635
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1636
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1637
+ <xsl:attribute name="keep-together.within-column">always</xsl:attribute>
1638
+
1639
+
1640
+ </xsl:attribute-set><xsl:attribute-set name="formula-style">
1641
+
1642
+ </xsl:attribute-set><xsl:attribute-set name="image-style">
1643
+ <xsl:attribute name="text-align">center</xsl:attribute>
1644
+
1645
+
1646
+
1647
+
1648
+
1649
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1650
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1651
+
1652
+
1653
+ </xsl:attribute-set><xsl:attribute-set name="figure-pseudocode-p-style">
1654
+
1655
+ </xsl:attribute-set><xsl:attribute-set name="image-graphic-style">
1527
1656
 
1528
1657
 
1529
1658
  <xsl:attribute name="width">100%</xsl:attribute>
@@ -1580,6 +1709,17 @@
1580
1709
 
1581
1710
  </xsl:attribute-set><xsl:attribute-set name="toc-style">
1582
1711
  <xsl:attribute name="line-height">135%</xsl:attribute>
1712
+ </xsl:attribute-set><xsl:attribute-set name="fn-reference-style">
1713
+ <xsl:attribute name="font-size">80%</xsl:attribute>
1714
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1715
+
1716
+
1717
+
1718
+
1719
+
1720
+
1721
+
1722
+
1583
1723
  </xsl:attribute-set><xsl:attribute-set name="fn-style">
1584
1724
  <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1585
1725
  </xsl:attribute-set><xsl:attribute-set name="fn-num-style">
@@ -1652,30 +1792,210 @@
1652
1792
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
1653
1793
  <xsl:attribute name="vertical-align">super</xsl:attribute>
1654
1794
 
1655
- </xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:template name="OLD_processPrefaceSectionsDefault_Contents">
1656
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
1657
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
1658
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
1659
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
1660
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
1661
- </xsl:template><xsl:template name="processPrefaceSectionsDefault_Contents">
1795
+ </xsl:attribute-set><xsl:attribute-set name="admonition-style">
1796
+
1797
+
1798
+
1799
+
1800
+
1801
+
1802
+
1803
+
1804
+
1805
+
1806
+
1807
+
1808
+
1809
+
1810
+ <xsl:attribute name="border">0.25pt solid black</xsl:attribute>
1811
+ <xsl:attribute name="margin-top">7mm</xsl:attribute>
1812
+ <xsl:attribute name="margin-left">-9mm</xsl:attribute>
1813
+ <xsl:attribute name="margin-right">-14mm</xsl:attribute>
1814
+ <xsl:attribute name="padding-top">3mm</xsl:attribute>
1815
+ <xsl:attribute name="margin-bottom">16pt</xsl:attribute>
1816
+
1817
+ </xsl:attribute-set><xsl:attribute-set name="admonition-container-style">
1818
+
1819
+
1820
+
1821
+
1822
+
1823
+
1824
+
1825
+
1826
+
1827
+
1828
+ <xsl:attribute name="margin-left">20mm</xsl:attribute>
1829
+ <xsl:attribute name="margin-right">20mm</xsl:attribute>
1830
+ <xsl:attribute name="text-indent">0mm</xsl:attribute>
1831
+
1832
+ </xsl:attribute-set><xsl:attribute-set name="admonition-name-style">
1833
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1834
+
1835
+
1836
+
1837
+
1838
+
1839
+
1840
+
1841
+
1842
+
1843
+
1844
+
1845
+
1846
+
1847
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1848
+ <xsl:attribute name="margin-left">20mm</xsl:attribute>
1849
+ <xsl:attribute name="margin-right">25mm</xsl:attribute>
1850
+ <xsl:attribute name="text-align">center</xsl:attribute>
1851
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
1852
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1853
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1854
+
1855
+ </xsl:attribute-set><xsl:attribute-set name="admonition-p-style">
1856
+
1857
+
1858
+
1859
+
1860
+
1861
+
1862
+
1863
+
1864
+
1865
+
1866
+
1867
+ <xsl:attribute name="text-align">justify</xsl:attribute>
1868
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1869
+
1870
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-normative-style">
1871
+
1872
+
1873
+
1874
+
1875
+
1876
+
1877
+
1878
+
1879
+
1880
+
1881
+
1882
+
1883
+
1884
+
1885
+
1886
+
1887
+
1888
+
1889
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
1890
+ <xsl:attribute name="margin-left">14mm</xsl:attribute>
1891
+ <xsl:attribute name="text-indent">-14mm</xsl:attribute>
1892
+
1893
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-normative-list-style">
1894
+ <xsl:attribute name="provisional-distance-between-starts">12mm</xsl:attribute>
1895
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1896
+
1897
+
1898
+
1899
+
1900
+
1901
+
1902
+
1903
+
1904
+
1905
+
1906
+
1907
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-style">
1908
+
1909
+
1910
+
1911
+
1912
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-list-style">
1913
+ <xsl:attribute name="provisional-distance-between-starts">12mm</xsl:attribute>
1914
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1915
+
1916
+
1917
+
1918
+
1919
+
1920
+
1921
+
1922
+
1923
+
1924
+
1925
+
1926
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-normative-list-body-style">
1927
+
1928
+
1929
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-list-body-style">
1930
+
1931
+
1932
+
1933
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-style">
1934
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1935
+ <xsl:attribute name="font-size">65%</xsl:attribute>
1936
+
1937
+
1938
+
1939
+
1940
+
1941
+
1942
+
1943
+
1944
+
1945
+
1946
+
1947
+
1948
+
1949
+
1950
+
1951
+
1952
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
1953
+
1954
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-number-style">
1955
+ <xsl:attribute name="keep-with-next.within-line">always</xsl:attribute>
1956
+
1957
+
1958
+
1959
+
1960
+
1961
+
1962
+
1963
+
1964
+
1965
+
1966
+
1967
+
1968
+
1969
+
1970
+
1971
+
1972
+ <xsl:attribute name="font-size">60%</xsl:attribute>
1973
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
1974
+
1975
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-body-style">
1976
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1977
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1978
+ <xsl:attribute name="start-indent">0pt</xsl:attribute>
1979
+
1980
+
1981
+
1982
+
1983
+
1984
+
1985
+
1986
+
1987
+
1988
+
1989
+
1990
+ </xsl:attribute-set><xsl:attribute-set name="references-non-normative-style">
1991
+
1992
+
1993
+
1994
+ </xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:variable name="ace_tag">ace-tag_</xsl:variable><xsl:template name="processPrefaceSectionsDefault_Contents">
1662
1995
  <xsl:for-each select="/*/*[local-name()='preface']/*">
1663
1996
  <xsl:sort select="@displayorder" data-type="number"/>
1664
1997
  <xsl:apply-templates select="." mode="contents"/>
1665
1998
  </xsl:for-each>
1666
- </xsl:template><xsl:template name="OLD_processMainSectionsDefault_Contents">
1667
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
1668
-
1669
- <!-- Normative references -->
1670
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]" mode="contents"/>
1671
- <!-- Terms and definitions -->
1672
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]" mode="contents"/>
1673
- <!-- Another main sections -->
1674
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]" mode="contents"/>
1675
- <xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/>
1676
- <!-- Bibliography -->
1677
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]" mode="contents"/>
1678
-
1679
1999
  </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
1680
2000
 
1681
2001
  <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]">
@@ -1692,29 +2012,11 @@
1692
2012
  <xsl:sort select="@displayorder" data-type="number"/>
1693
2013
  <xsl:apply-templates select="." mode="contents"/>
1694
2014
  </xsl:for-each>
1695
- </xsl:template><xsl:template name="OLD_processPrefaceSectionsDefault">
1696
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
1697
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
1698
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
1699
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
1700
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
1701
2015
  </xsl:template><xsl:template name="processPrefaceSectionsDefault">
1702
2016
  <xsl:for-each select="/*/*[local-name()='preface']/*">
1703
2017
  <xsl:sort select="@displayorder" data-type="number"/>
1704
2018
  <xsl:apply-templates select="."/>
1705
2019
  </xsl:for-each>
1706
- </xsl:template><xsl:template name="OLD_processMainSectionsDefault">
1707
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
1708
-
1709
- <!-- Normative references -->
1710
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']"/>
1711
- <!-- Terms and definitions -->
1712
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]"/>
1713
- <!-- Another main sections -->
1714
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]"/>
1715
- <xsl:apply-templates select="/*/*[local-name()='annex']"/>
1716
- <!-- Bibliography -->
1717
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
1718
2020
  </xsl:template><xsl:template name="processMainSectionsDefault">
1719
2021
  <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
1720
2022
  <xsl:sort select="@displayorder" data-type="number"/>
@@ -1735,6 +2037,64 @@
1735
2037
  <xsl:value-of select="."/>
1736
2038
  </xsl:template><xsl:template match="*[local-name()='br']">
1737
2039
  <xsl:value-of select="$linebreak"/>
2040
+ </xsl:template><xsl:template match="*[local-name()='copyright-statement']">
2041
+ <fo:block xsl:use-attribute-sets="copyright-statement-style">
2042
+ <xsl:apply-templates/>
2043
+ </fo:block>
2044
+ </xsl:template><xsl:template match="*[local-name()='copyright-statement']//*[local-name()='title']">
2045
+
2046
+ <!-- process in the template 'title' -->
2047
+ <xsl:call-template name="title"/>
2048
+
2049
+ </xsl:template><xsl:template match="*[local-name()='copyright-statement']//*[local-name()='p']">
2050
+
2051
+
2052
+ <!-- process in the template 'paragraph' -->
2053
+ <xsl:call-template name="paragraph"/>
2054
+
2055
+ </xsl:template><xsl:template match="*[local-name()='license-statement']">
2056
+ <fo:block xsl:use-attribute-sets="license-statement-style">
2057
+ <xsl:apply-templates/>
2058
+ </fo:block>
2059
+ </xsl:template><xsl:template match="*[local-name()='license-statement']//*[local-name()='title']">
2060
+
2061
+ <!-- process in the template 'title' -->
2062
+ <xsl:call-template name="title"/>
2063
+
2064
+ </xsl:template><xsl:template match="*[local-name()='license-statement']//*[local-name()='p']">
2065
+
2066
+ <!-- process in the template 'paragraph' -->
2067
+ <xsl:call-template name="paragraph"/>
2068
+
2069
+ </xsl:template><xsl:template match="*[local-name()='legal-statement']">
2070
+ <fo:block xsl:use-attribute-sets="legal-statement-style">
2071
+ <xsl:apply-templates/>
2072
+ </fo:block>
2073
+ </xsl:template><xsl:template match="*[local-name()='legal-statement']//*[local-name()='title']">
2074
+
2075
+ <!-- process in the template 'title' -->
2076
+ <xsl:call-template name="title"/>
2077
+
2078
+
2079
+ </xsl:template><xsl:template match="*[local-name()='legal-statement']//*[local-name()='p']">
2080
+
2081
+ <!-- process in the template 'paragraph' -->
2082
+ <xsl:call-template name="paragraph"/>
2083
+
2084
+ </xsl:template><xsl:template match="*[local-name()='feedback-statement']">
2085
+ <fo:block xsl:use-attribute-sets="feedback-statement-style">
2086
+ <xsl:apply-templates/>
2087
+ </fo:block>
2088
+ </xsl:template><xsl:template match="*[local-name()='feedback-statement']//*[local-name()='title']">
2089
+
2090
+ <!-- process in the template 'title' -->
2091
+ <xsl:call-template name="title"/>
2092
+
2093
+ </xsl:template><xsl:template match="*[local-name()='feedback-statement']//*[local-name()='p']">
2094
+
2095
+ <!-- process in the template 'paragraph' -->
2096
+ <xsl:call-template name="paragraph"/>
2097
+
1738
2098
  </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
1739
2099
  <!-- <xsl:call-template name="add-zero-spaces"/> -->
1740
2100
  <xsl:call-template name="add-zero-spaces-java"/>
@@ -1751,43 +2111,19 @@
1751
2111
  <xsl:call-template name="getSimpleTable"/>
1752
2112
  </xsl:variable>
1753
2113
 
1754
- <!-- <xsl:if test="$namespace = 'bipm'">
1755
- <fo:block>&#xA0;</fo:block>
1756
- </xsl:if> -->
1757
-
1758
2114
 
1759
2115
  <!-- Display table's name before table as standalone block -->
1760
2116
  <!-- $namespace = 'iso' or -->
1761
2117
 
1762
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
1763
-
1764
-
1765
-
1766
-
2118
+ <xsl:apply-templates select="*[local-name()='name']"/> <!-- table's title rendered before table -->
2119
+
1767
2120
 
1768
- <xsl:call-template name="fn_name_display"/>
1769
2121
 
2122
+ <xsl:call-template name="table_name_fn_display"/>
1770
2123
 
1771
2124
 
1772
2125
  <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)/*/tr[1]/td)"/>
1773
2126
 
1774
- <!-- <xsl:variable name="cols-count">
1775
- <xsl:choose>
1776
- <xsl:when test="*[local-name()='thead']">
1777
- <xsl:call-template name="calculate-columns-numbers">
1778
- <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
1779
- </xsl:call-template>
1780
- </xsl:when>
1781
- <xsl:otherwise>
1782
- <xsl:call-template name="calculate-columns-numbers">
1783
- <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
1784
- </xsl:call-template>
1785
- </xsl:otherwise>
1786
- </xsl:choose>
1787
- </xsl:variable> -->
1788
- <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
1789
- <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
1790
-
1791
2127
  <xsl:variable name="colwidths">
1792
2128
  <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
1793
2129
  <xsl:call-template name="calculate-column-widths">
@@ -1798,17 +2134,8 @@
1798
2134
  </xsl:variable>
1799
2135
  <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
1800
2136
 
1801
- <!-- <xsl:variable name="colwidths2">
1802
- <xsl:call-template name="calculate-column-widths">
1803
- <xsl:with-param name="cols-count" select="$cols-count"/>
1804
- </xsl:call-template>
1805
- </xsl:variable> -->
1806
-
1807
- <!-- cols-count=<xsl:copy-of select="$cols-count"/>
1808
- colwidthsNew=<xsl:copy-of select="$colwidths"/>
1809
- colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
1810
2137
 
1811
- <xsl:variable name="margin-left">
2138
+ <xsl:variable name="margin-side">
1812
2139
  <xsl:choose>
1813
2140
  <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
1814
2141
  <xsl:otherwise>0</xsl:otherwise>
@@ -1816,78 +2143,81 @@
1816
2143
  </xsl:variable>
1817
2144
 
1818
2145
 
1819
- <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
1820
-
1821
-
2146
+ <fo:block-container xsl:use-attribute-sets="table-container-style">
2147
+
1822
2148
 
1823
-
1824
-
1825
- <xsl:attribute name="space-after">12pt</xsl:attribute>
1826
- <xsl:if test="not(ancestor::*[local-name()='sections'])">
1827
- <xsl:attribute name="font-size">10pt</xsl:attribute>
1828
- </xsl:if>
1829
-
1830
-
2149
+ <xsl:attribute name="margin-left"><xsl:value-of select="-$margin-side"/>mm</xsl:attribute>
2150
+ <xsl:attribute name="margin-right"><xsl:value-of select="-$margin-side"/>mm</xsl:attribute>
1831
2151
 
2152
+
1832
2153
 
1833
-
2154
+
1834
2155
 
2156
+
1835
2157
 
1836
2158
 
1837
2159
 
2160
+
1838
2161
 
1839
2162
 
1840
2163
 
1841
2164
 
1842
2165
 
2166
+ <xsl:if test="not(ancestor::*[local-name()='sections'])">
2167
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2168
+ </xsl:if>
1843
2169
 
2170
+ <!-- end table block-container attributes -->
1844
2171
 
1845
2172
  <!-- display table's name before table for PAS inside block-container (2-columnn layout) -->
1846
2173
 
1847
2174
 
2175
+ <xsl:variable name="table_width_default">100%</xsl:variable>
1848
2176
  <xsl:variable name="table_width">
1849
2177
  <!-- for centered table always 100% (@width will be set for middle/second cell of outer table) -->
1850
2178
 
1851
-
1852
-
1853
- <xsl:choose>
1854
- <xsl:when test="@width"><xsl:value-of select="@width"/></xsl:when>
1855
- <xsl:otherwise>100%</xsl:otherwise>
1856
- </xsl:choose>
1857
-
2179
+ <xsl:choose>
2180
+ <xsl:when test="@width"><xsl:value-of select="@width"/></xsl:when>
2181
+ <xsl:otherwise><xsl:value-of select="$table_width_default"/></xsl:otherwise>
2182
+ </xsl:choose>
2183
+
1858
2184
  </xsl:variable>
1859
2185
 
2186
+
1860
2187
  <xsl:variable name="table_attributes">
1861
- <attribute name="table-layout">fixed</attribute>
1862
- <attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></attribute>
1863
- <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
1864
- <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
1865
-
1866
-
1867
-
1868
-
1869
-
1870
-
1871
-
1872
-
1873
-
1874
- <xsl:if test="ancestor::*[local-name()='sections']">
1875
- <attribute name="border-top">1.5pt solid black</attribute>
1876
- <attribute name="border-bottom">1.5pt solid black</attribute>
1877
- </xsl:if>
1878
-
1879
-
1880
-
1881
-
1882
-
1883
-
2188
+
2189
+ <xsl:element name="table_attributes" use-attribute-sets="table-style">
2190
+ <xsl:attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></xsl:attribute>
2191
+
2192
+
2193
+ <xsl:attribute name="margin-left"><xsl:value-of select="$margin-side"/>mm</xsl:attribute>
2194
+ <xsl:attribute name="margin-right"><xsl:value-of select="$margin-side"/>mm</xsl:attribute>
2195
+
2196
+
2197
+
2198
+
2199
+
2200
+
2201
+
2202
+
2203
+
2204
+
2205
+
2206
+
2207
+
2208
+ <xsl:if test="ancestor::*[local-name()='sections']">
2209
+ <xsl:attribute name="border-top">1.5pt solid black</xsl:attribute>
2210
+ <xsl:attribute name="border-bottom">1.5pt solid black</xsl:attribute>
2211
+ </xsl:if>
2212
+
2213
+ </xsl:element>
1884
2214
  </xsl:variable>
1885
2215
 
1886
2216
 
1887
- <fo:table id="{@id}" table-omit-footer-at-break="true">
2217
+ <fo:table id="{@id}">
1888
2218
 
1889
- <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
1890
- <xsl:attribute name="{@name}">
2219
+ <xsl:for-each select="xalan:nodeset($table_attributes)/table_attributes/@*">
2220
+ <xsl:attribute name="{local-name()}">
1891
2221
  <xsl:value-of select="."/>
1892
2222
  </xsl:attribute>
1893
2223
  </xsl:for-each>
@@ -1898,7 +2228,6 @@
1898
2228
  </xsl:if>
1899
2229
 
1900
2230
 
1901
-
1902
2231
  <xsl:choose>
1903
2232
  <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
1904
2233
  <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
@@ -1924,40 +2253,21 @@
1924
2253
  <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
1925
2254
  </xsl:when>
1926
2255
  <xsl:otherwise>
1927
- <xsl:apply-templates/>
2256
+ <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note') and not(local-name() = 'thead') and not(local-name() = 'tfoot')]"/> <!-- process all table' elements, except name, header, footer and note that renders separaterely -->
1928
2257
  </xsl:otherwise>
1929
2258
  </xsl:choose>
1930
2259
 
1931
2260
  </fo:table>
1932
2261
 
1933
- <xsl:variable name="colgroup" select="*[local-name()='colgroup']"/>
1934
- <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
1935
- <xsl:call-template name="insertTableFooterInSeparateTable">
1936
- <xsl:with-param name="table_attributes" select="$table_attributes"/>
1937
- <xsl:with-param name="colwidths" select="$colwidths"/>
1938
- <xsl:with-param name="colgroup" select="$colgroup"/>
1939
- </xsl:call-template>
1940
- </xsl:for-each>
1941
-
1942
- <!-- insert footer as table -->
1943
- <!-- <fo:table>
1944
- <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
1945
- <xsl:attribute name="{@name}">
1946
- <xsl:value-of select="."/>
1947
- </xsl:attribute>
1948
- </xsl:for-each>
1949
-
1950
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
1951
- <xsl:choose>
1952
- <xsl:when test=". = 1 or . = 0">
1953
- <fo:table-column column-width="proportional-column-width(2)"/>
1954
- </xsl:when>
1955
- <xsl:otherwise>
1956
- <fo:table-column column-width="proportional-column-width({.})"/>
1957
- </xsl:otherwise>
1958
- </xsl:choose>
1959
- </xsl:for-each>
1960
- </fo:table>-->
2262
+ <xsl:variable name="colgroup" select="*[local-name()='colgroup']"/>
2263
+ <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
2264
+ <xsl:call-template name="insertTableFooterInSeparateTable">
2265
+ <xsl:with-param name="table_attributes" select="$table_attributes"/>
2266
+ <xsl:with-param name="colwidths" select="$colwidths"/>
2267
+ <xsl:with-param name="colgroup" select="$colgroup"/>
2268
+ </xsl:call-template>
2269
+ </xsl:for-each>
2270
+
1961
2271
 
1962
2272
 
1963
2273
 
@@ -2015,18 +2325,17 @@
2015
2325
  </xsl:otherwise>
2016
2326
  </xsl:choose>
2017
2327
 
2018
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
2328
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']">
2019
2329
  <xsl:param name="continued"/>
2020
2330
  <xsl:if test="normalize-space() != ''">
2021
2331
  <fo:block xsl:use-attribute-sets="table-name-style">
2022
-
2332
+
2023
2333
 
2024
2334
 
2025
2335
 
2026
2336
 
2027
2337
  <xsl:choose>
2028
2338
  <xsl:when test="$continued = 'true'">
2029
- <!-- <xsl:if test="$namespace = 'bsi'"></xsl:if> -->
2030
2339
 
2031
2340
  </xsl:when>
2032
2341
  <xsl:otherwise>
@@ -2089,13 +2398,6 @@
2089
2398
  <xsl:for-each select="xalan:nodeset($table)/*/tr">
2090
2399
  <xsl:variable name="td_text">
2091
2400
  <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
2092
-
2093
- <!-- <xsl:if test="$namespace = 'bipm'">
2094
- <xsl:for-each select="*[local-name()='td'][$curr-col]//*[local-name()='math']">
2095
- <word><xsl:value-of select="normalize-space(.)"/></word>
2096
- </xsl:for-each>
2097
- </xsl:if> -->
2098
-
2099
2401
  </xsl:variable>
2100
2402
  <xsl:variable name="words">
2101
2403
  <xsl:variable name="string_with_added_zerospaces">
@@ -2132,7 +2434,6 @@
2132
2434
  </xsl:otherwise>
2133
2435
  </xsl:choose>
2134
2436
  </xsl:variable>
2135
-
2136
2437
 
2137
2438
  <column>
2138
2439
  <xsl:for-each select="xalan:nodeset($widths)//width">
@@ -2166,9 +2467,8 @@
2166
2467
 
2167
2468
  <xsl:variable name="math_text" select="normalize-space(xalan:nodeset($mathml))"/>
2168
2469
  <xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
2169
- </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
2470
+ </xsl:template><xsl:template match="*[local-name()='thead']">
2170
2471
  <xsl:param name="cols-count"/>
2171
- <!-- font-weight="bold" -->
2172
2472
  <fo:table-header>
2173
2473
 
2174
2474
 
@@ -2180,85 +2480,26 @@
2180
2480
  <fo:table-row>
2181
2481
  <fo:table-cell number-columns-spanned="{$cols-count}" border-left="1.5pt solid white" border-right="1.5pt solid white" border-top="1.5pt solid white" border-bottom="1.5pt solid black">
2182
2482
 
2183
- <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']" mode="presentation">
2483
+ <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']">
2184
2484
  <xsl:with-param name="continued">true</xsl:with-param>
2185
2485
  </xsl:apply-templates>
2186
2486
 
2187
2487
 
2188
2488
 
2189
-
2190
2489
  </fo:table-cell>
2191
2490
  </fo:table-row>
2192
2491
  </xsl:template><xsl:template match="*[local-name()='thead']" mode="process_tbody">
2193
2492
  <fo:table-body>
2194
2493
  <xsl:apply-templates/>
2195
2494
  </fo:table-body>
2196
- </xsl:template><xsl:template match="*[local-name()='tfoot']"/><xsl:template match="*[local-name()='tfoot']" mode="process">
2495
+ </xsl:template><xsl:template match="*[local-name()='tfoot']">
2197
2496
  <xsl:apply-templates/>
2198
2497
  </xsl:template><xsl:template name="insertTableFooter">
2199
2498
  <xsl:param name="cols-count"/>
2200
2499
  <xsl:if test="../*[local-name()='tfoot']">
2201
2500
  <fo:table-footer>
2202
- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
2203
- </fo:table-footer>
2204
- </xsl:if>
2205
- </xsl:template><xsl:template name="insertTableFooter2">
2206
- <xsl:param name="cols-count"/>
2207
- <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
2208
- <xsl:if test="../*[local-name()='tfoot'] or $isNoteOrFnExist = 'true'">
2209
-
2210
- <fo:table-footer>
2211
-
2212
- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
2213
-
2214
- <!-- if there are note(s) or fn(s) then create footer row -->
2215
- <xsl:if test="$isNoteOrFnExist = 'true'">
2216
-
2217
-
2218
-
2219
- <fo:table-row>
2220
- <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
2221
-
2222
-
2223
-
2224
- <!-- fn will be processed inside 'note' processing -->
2225
-
2226
-
2227
-
2228
-
2229
-
2230
-
2231
- <!-- except gb -->
2232
-
2233
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2234
-
2235
-
2236
- <!-- show Note under table in preface (ex. abstract) sections -->
2237
- <!-- empty, because notes show at page side in main sections -->
2238
- <!-- <xsl:if test="$namespace = 'bipm'">
2239
- <xsl:choose>
2240
- <xsl:when test="ancestor::*[local-name()='preface']">
2241
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2242
- </xsl:when>
2243
- <xsl:otherwise>
2244
- <fo:block/>
2245
- </xsl:otherwise>
2246
- </xsl:choose>
2247
- </xsl:if> -->
2248
-
2249
-
2250
- <!-- horizontal row separator -->
2251
-
2252
-
2253
- <!-- fn processing -->
2254
- <xsl:call-template name="fn_display"/>
2255
-
2256
- </fo:table-cell>
2257
- </fo:table-row>
2258
-
2259
- </xsl:if>
2501
+ <xsl:apply-templates select="../*[local-name()='tfoot']"/>
2260
2502
  </fo:table-footer>
2261
-
2262
2503
  </xsl:if>
2263
2504
  </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
2264
2505
  <xsl:param name="table_attributes"/>
@@ -2285,17 +2526,18 @@
2285
2526
  </xsl:variable>
2286
2527
 
2287
2528
  <fo:table keep-with-previous="always">
2288
- <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
2529
+ <xsl:for-each select="xalan:nodeset($table_attributes)/table_attributes/@*">
2530
+ <xsl:variable name="name" select="local-name()"/>
2289
2531
  <xsl:choose>
2290
- <xsl:when test="@name = 'border-top'">
2291
- <xsl:attribute name="{@name}">0pt solid black</xsl:attribute>
2532
+ <xsl:when test="$name = 'border-top'">
2533
+ <xsl:attribute name="{$name}">0pt solid black</xsl:attribute>
2292
2534
  </xsl:when>
2293
- <xsl:when test="@name = 'border'">
2294
- <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
2535
+ <xsl:when test="$name = 'border'">
2536
+ <xsl:attribute name="{$name}"><xsl:value-of select="."/></xsl:attribute>
2295
2537
  <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
2296
2538
  </xsl:when>
2297
2539
  <xsl:otherwise>
2298
- <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
2540
+ <xsl:attribute name="{$name}"><xsl:value-of select="."/></xsl:attribute>
2299
2541
  </xsl:otherwise>
2300
2542
  </xsl:choose>
2301
2543
  </xsl:for-each>
@@ -2324,9 +2566,10 @@
2324
2566
 
2325
2567
  <fo:table-body>
2326
2568
  <fo:table-row>
2327
- <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
2569
+ <fo:table-cell xsl:use-attribute-sets="table-footer-cell-style" number-columns-spanned="{$cols-count}">
2328
2570
 
2329
2571
 
2572
+
2330
2573
 
2331
2574
 
2332
2575
  <!-- fn will be processed inside 'note' processing -->
@@ -2336,37 +2579,20 @@
2336
2579
 
2337
2580
 
2338
2581
 
2339
-
2340
-
2341
-
2342
2582
  <!-- for BSI (not PAS) display Notes before footnotes -->
2343
2583
 
2344
2584
 
2345
- <!-- except gb -->
2585
+ <!-- except gb and bsi -->
2346
2586
 
2347
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2348
-
2349
-
2350
- <!-- <xsl:if test="$namespace = 'bipm'">
2351
- <xsl:choose>
2352
- <xsl:when test="ancestor::*[local-name()='preface']">
2353
- show Note under table in preface (ex. abstract) sections
2354
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2355
- </xsl:when>
2356
- <xsl:otherwise>
2357
- empty, because notes show at page side in main sections
2358
- <fo:block/>
2359
- </xsl:otherwise>
2360
- </xsl:choose>
2361
- </xsl:if> -->
2587
+ <xsl:apply-templates select="../*[local-name()='note']"/>
2588
+
2362
2589
 
2363
2590
 
2364
2591
  <!-- horizontal row separator -->
2365
2592
 
2366
2593
 
2367
2594
  <!-- fn processing -->
2368
- <xsl:call-template name="fn_display"/>
2369
-
2595
+ <xsl:call-template name="table_fn_display"/>
2370
2596
 
2371
2597
  <!-- for PAS display Notes after footnotes -->
2372
2598
 
@@ -2396,7 +2622,7 @@
2396
2622
 
2397
2623
 
2398
2624
 
2399
- <xsl:apply-templates select="../*[local-name()='thead']" mode="process">
2625
+ <xsl:apply-templates select="../*[local-name()='thead']">
2400
2626
  <xsl:with-param name="cols-count" select="$cols-count"/>
2401
2627
  </xsl:apply-templates>
2402
2628
 
@@ -2408,75 +2634,57 @@
2408
2634
 
2409
2635
 
2410
2636
  <xsl:apply-templates/>
2411
- <!-- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/> -->
2412
-
2637
+
2413
2638
  </fo:table-body>
2414
2639
 
2415
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']/text()[1]" priority="2" mode="presentation_name">
2416
- <xsl:choose>
2417
- <xsl:when test="substring-after(., '—') != ''">
2418
- <xsl:text>—</xsl:text><xsl:value-of select="substring-after(., '—')"/>
2419
- </xsl:when>
2420
- <xsl:otherwise>
2421
- <xsl:value-of select="."/>
2422
- </xsl:otherwise>
2423
- </xsl:choose>
2424
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']" mode="presentation_name">
2425
- <xsl:apply-templates mode="presentation_name"/>
2426
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']/node()" mode="presentation_name">
2427
- <xsl:apply-templates select="."/>
2640
+ </xsl:template><xsl:template match="*[local-name()='thead']/*[local-name()='tr']" priority="2">
2641
+ <fo:table-row xsl:use-attribute-sets="table-header-row-style">
2642
+
2643
+
2644
+
2645
+
2646
+
2647
+
2648
+
2649
+ <xsl:call-template name="setTableRowAttributes"/>
2650
+
2651
+ <xsl:apply-templates/>
2652
+ </fo:table-row>
2653
+ </xsl:template><xsl:template match="*[local-name()='tfoot']/*[local-name()='tr']" priority="2">
2654
+ <fo:table-row xsl:use-attribute-sets="table-footer-row-style">
2655
+
2656
+ <xsl:call-template name="setTableRowAttributes"/>
2657
+ <xsl:apply-templates/>
2658
+ </fo:table-row>
2428
2659
  </xsl:template><xsl:template match="*[local-name()='tr']">
2429
- <xsl:variable name="parent-name" select="local-name(..)"/>
2430
- <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
2431
- <fo:table-row min-height="4mm">
2432
- <xsl:if test="$parent-name = 'thead'">
2433
- <xsl:attribute name="font-weight">bold</xsl:attribute>
2434
-
2435
-
2436
-
2437
-
2438
-
2439
-
2440
-
2441
-
2442
- </xsl:if>
2443
- <xsl:if test="$parent-name = 'tfoot'">
2444
-
2445
-
2446
-
2447
- </xsl:if>
2448
-
2449
-
2450
-
2451
-
2452
-
2453
-
2454
-
2455
-
2456
-
2457
-
2458
- <!-- <xsl:if test="$namespace = 'bipm'">
2459
- <xsl:attribute name="height">8mm</xsl:attribute>
2460
- </xsl:if> -->
2461
-
2660
+ <fo:table-row xsl:use-attribute-sets="table-body-row-style">
2661
+
2662
+
2663
+
2664
+
2665
+
2666
+ <xsl:call-template name="setTableRowAttributes"/>
2462
2667
  <xsl:apply-templates/>
2463
2668
  </fo:table-row>
2669
+ </xsl:template><xsl:template name="setTableRowAttributes">
2670
+
2671
+
2672
+
2673
+
2674
+
2675
+
2676
+
2677
+
2464
2678
  </xsl:template><xsl:template match="*[local-name()='th']">
2465
- <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
2466
- <xsl:attribute name="text-align">
2467
- <xsl:choose>
2468
- <xsl:when test="@align">
2469
- <xsl:call-template name="setAlignment"/>
2470
- <!-- <xsl:value-of select="@align"/> -->
2471
- </xsl:when>
2472
- <xsl:otherwise>center</xsl:otherwise>
2473
- </xsl:choose>
2474
- </xsl:attribute>
2475
-
2679
+ <fo:table-cell xsl:use-attribute-sets="table-header-cell-style"> <!-- text-align="{@align}" -->
2680
+ <xsl:call-template name="setTextAlignment">
2681
+ <xsl:with-param name="default">center</xsl:with-param>
2682
+ </xsl:call-template>
2476
2683
 
2477
2684
 
2478
2685
 
2479
2686
 
2687
+
2480
2688
 
2481
2689
 
2482
2690
 
@@ -2495,30 +2703,30 @@
2495
2703
  <xsl:attribute name="font-weight">bold</xsl:attribute>
2496
2704
  </xsl:if>
2497
2705
  </xsl:if>
2498
- <xsl:attribute name="text-indent">0mm</xsl:attribute>
2499
-
2500
-
2501
-
2502
2706
 
2503
2707
 
2504
2708
  <xsl:if test="$lang = 'ar'">
2505
2709
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
2506
2710
  </xsl:if>
2507
- <xsl:if test="@colspan">
2508
- <xsl:attribute name="number-columns-spanned">
2509
- <xsl:value-of select="@colspan"/>
2510
- </xsl:attribute>
2511
- </xsl:if>
2512
- <xsl:if test="@rowspan">
2513
- <xsl:attribute name="number-rows-spanned">
2514
- <xsl:value-of select="@rowspan"/>
2515
- </xsl:attribute>
2516
- </xsl:if>
2517
- <xsl:call-template name="display-align"/>
2711
+
2712
+ <xsl:call-template name="setTableCellAttributes"/>
2713
+
2518
2714
  <fo:block>
2519
2715
  <xsl:apply-templates/>
2520
2716
  </fo:block>
2521
2717
  </fo:table-cell>
2718
+ </xsl:template><xsl:template name="setTableCellAttributes">
2719
+ <xsl:if test="@colspan">
2720
+ <xsl:attribute name="number-columns-spanned">
2721
+ <xsl:value-of select="@colspan"/>
2722
+ </xsl:attribute>
2723
+ </xsl:if>
2724
+ <xsl:if test="@rowspan">
2725
+ <xsl:attribute name="number-rows-spanned">
2726
+ <xsl:value-of select="@rowspan"/>
2727
+ </xsl:attribute>
2728
+ </xsl:if>
2729
+ <xsl:call-template name="display-align"/>
2522
2730
  </xsl:template><xsl:template name="display-align">
2523
2731
  <xsl:if test="@valign">
2524
2732
  <xsl:attribute name="display-align">
@@ -2531,22 +2739,18 @@
2531
2739
  </xsl:attribute>
2532
2740
  </xsl:if>
2533
2741
  </xsl:template><xsl:template match="*[local-name()='td']">
2534
- <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
2535
- <xsl:attribute name="text-align">
2536
- <xsl:choose>
2537
- <xsl:when test="@align">
2538
- <xsl:call-template name="setAlignment"/>
2539
- <!-- <xsl:value-of select="@align"/> -->
2540
- </xsl:when>
2541
- <xsl:otherwise>left</xsl:otherwise>
2542
- </xsl:choose>
2543
- </xsl:attribute>
2742
+ <fo:table-cell xsl:use-attribute-sets="table-cell-style"> <!-- text-align="{@align}" -->
2743
+ <xsl:call-template name="setTextAlignment">
2744
+ <xsl:with-param name="default">left</xsl:with-param>
2745
+ </xsl:call-template>
2746
+
2544
2747
  <xsl:if test="$lang = 'ar'">
2545
2748
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
2546
2749
  </xsl:if>
2547
2750
 
2548
2751
 
2549
2752
 
2753
+ <!-- bsi -->
2550
2754
 
2551
2755
 
2552
2756
 
@@ -2554,77 +2758,63 @@
2554
2758
 
2555
2759
 
2556
2760
 
2557
- <xsl:if test="ancestor::*[local-name()='sections']">
2558
- <xsl:attribute name="border">solid black 0pt</xsl:attribute>
2559
- <xsl:attribute name="padding-top">1mm</xsl:attribute>
2560
- </xsl:if>
2561
- <xsl:attribute name="text-indent">0mm</xsl:attribute>
2761
+
2762
+
2562
2763
 
2563
2764
 
2564
2765
 
2565
2766
 
2566
2767
 
2768
+ <xsl:if test="ancestor::*[local-name()='sections']">
2769
+ <xsl:attribute name="border">solid black 0pt</xsl:attribute>
2770
+ <xsl:attribute name="padding-top">1mm</xsl:attribute>
2771
+ </xsl:if>
2567
2772
 
2568
2773
 
2569
- <xsl:if test=".//*[local-name() = 'table']">
2774
+ <xsl:if test=".//*[local-name() = 'table']"> <!-- if there is nested table -->
2570
2775
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
2571
2776
  </xsl:if>
2572
- <xsl:if test="@colspan">
2573
- <xsl:attribute name="number-columns-spanned">
2574
- <xsl:value-of select="@colspan"/>
2575
- </xsl:attribute>
2576
- </xsl:if>
2577
- <xsl:if test="@rowspan">
2578
- <xsl:attribute name="number-rows-spanned">
2579
- <xsl:value-of select="@rowspan"/>
2580
- </xsl:attribute>
2581
- </xsl:if>
2582
- <xsl:call-template name="display-align"/>
2777
+
2778
+ <xsl:call-template name="setTableCellAttributes"/>
2779
+
2583
2780
  <fo:block>
2584
-
2781
+
2782
+
2783
+
2585
2784
  <xsl:apply-templates/>
2586
2785
  </fo:block>
2587
2786
  </fo:table-cell>
2588
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2"/><xsl:template match="*[local-name()='table']/*[local-name()='note']" mode="process">
2589
-
2787
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2">
2788
+
2789
+ <fo:block xsl:use-attribute-sets="table-note-style">
2790
+
2791
+
2792
+
2793
+
2590
2794
 
2591
- <fo:block font-size="10pt" margin-bottom="12pt">
2795
+ <!-- Table's note name (NOTE, for example) -->
2796
+ <fo:inline xsl:use-attribute-sets="table-note-name-style">
2592
2797
 
2593
2798
 
2594
2799
 
2595
2800
 
2596
2801
 
2597
2802
 
2803
+ <xsl:if test="@type = 'source' or @type = 'abbreviation'">
2804
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
2805
+ </xsl:if>
2598
2806
 
2599
2807
 
2600
- <!-- Table's note name (NOTE, for example) -->
2601
-
2602
- <fo:inline padding-right="2mm" xsl:use-attribute-sets="table-note-name-style">
2603
-
2604
-
2605
-
2606
- <xsl:if test="@type = 'source' or @type = 'abbreviation'">
2607
- <xsl:attribute name="font-size">9pt</xsl:attribute>
2608
- <!-- <fo:inline>
2609
- <xsl:call-template name="capitalize">
2610
- <xsl:with-param name="str" select="@type"/>
2611
- </xsl:call-template>
2612
- <xsl:text>: </xsl:text>
2613
- </fo:inline> -->
2614
- </xsl:if>
2808
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
2615
2809
 
2616
-
2617
-
2618
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2619
-
2620
- </fo:inline>
2621
-
2622
-
2623
-
2624
- <xsl:apply-templates mode="process"/>
2625
- </fo:block>
2810
+ </fo:inline>
2811
+
2812
+
2813
+
2814
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
2815
+ </fo:block>
2626
2816
 
2627
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='name']" mode="process"/><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" mode="process">
2817
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" priority="2">
2628
2818
  <xsl:apply-templates/>
2629
2819
  </xsl:template><xsl:template match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])]" priority="2" name="fn">
2630
2820
 
@@ -2702,8 +2892,7 @@
2702
2892
  <xsl:copy-of select="$footnote_inline"/>
2703
2893
  <fo:footnote-body>
2704
2894
 
2705
- <fo:block-container text-indent="0" start-indent="0">
2706
-
2895
+ <fo:block-container xsl:use-attribute-sets="fn-container-body-style">
2707
2896
 
2708
2897
  <fo:block xsl:use-attribute-sets="fn-body-style">
2709
2898
 
@@ -2722,7 +2911,7 @@
2722
2911
  <xsl:copy-of select="$footnote_inline"/>
2723
2912
  </xsl:otherwise>
2724
2913
  </xsl:choose>
2725
- </xsl:template><xsl:template name="fn_display">
2914
+ </xsl:template><xsl:template name="table_fn_display">
2726
2915
  <xsl:variable name="references">
2727
2916
 
2728
2917
  <xsl:for-each select="..//*[local-name()='fn'][local-name(..) != 'name']">
@@ -2733,33 +2922,26 @@
2733
2922
  <xsl:for-each select="xalan:nodeset($references)//fn">
2734
2923
  <xsl:variable name="reference" select="@reference"/>
2735
2924
  <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
2736
- <fo:block margin-bottom="12pt">
2925
+ <fo:block xsl:use-attribute-sets="table-fn-style">
2737
2926
 
2738
2927
 
2739
2928
 
2740
-
2741
-
2742
-
2743
-
2744
- <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
2929
+ <fo:inline id="{@id}" xsl:use-attribute-sets="table-fn-number-style">
2745
2930
 
2746
- <xsl:attribute name="vertical-align">super</xsl:attribute>
2747
2931
 
2748
2932
 
2749
2933
 
2750
2934
 
2935
+ <xsl:value-of select="@reference"/>
2751
2936
 
2752
2937
 
2753
2938
 
2754
2939
 
2755
- <xsl:value-of select="@reference"/>
2756
2940
 
2757
2941
 
2758
2942
 
2759
2943
  </fo:inline>
2760
- <fo:inline>
2761
-
2762
- <!-- <xsl:apply-templates /> -->
2944
+ <fo:inline xsl:use-attribute-sets="table-fn-body-style">
2763
2945
  <xsl:copy-of select="./node()"/>
2764
2946
  </fo:inline>
2765
2947
  </fo:block>
@@ -2771,15 +2953,7 @@
2771
2953
 
2772
2954
  <xsl:apply-templates/>
2773
2955
  </fn>
2774
- </xsl:template><xsl:template name="fn_name_display">
2775
- <!-- <xsl:variable name="references">
2776
- <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
2777
- <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
2778
- <xsl:apply-templates />
2779
- </fn>
2780
- </xsl:for-each>
2781
- </xsl:variable>
2782
- $references=<xsl:copy-of select="$references"/> -->
2956
+ </xsl:template><xsl:template name="table_name_fn_display">
2783
2957
  <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
2784
2958
  <xsl:variable name="reference" select="@reference"/>
2785
2959
  <fo:block id="{@reference}_{ancestor::*[@id][1]/@id}"><xsl:value-of select="@reference"/></fo:block>
@@ -2788,9 +2962,7 @@
2788
2962
  </fo:block>
2789
2963
  </xsl:for-each>
2790
2964
  </xsl:template><xsl:template name="fn_display_figure">
2791
- <xsl:variable name="key_iso">
2792
- <!-- and (not(@class) or @class !='pseudocode') -->
2793
- </xsl:variable>
2965
+
2794
2966
  <xsl:variable name="references">
2795
2967
  <xsl:for-each select=".//*[local-name()='fn'][not(parent::*[local-name()='name'])]">
2796
2968
  <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
@@ -2798,50 +2970,52 @@
2798
2970
  </fn>
2799
2971
  </xsl:for-each>
2800
2972
  </xsl:variable>
2973
+
2974
+ <xsl:if test="xalan:nodeset($references)//fn">
2801
2975
 
2802
- <!-- current hierarchy is 'figure' element -->
2803
- <xsl:variable name="following_dl_colwidths">
2804
- <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
2805
- <xsl:variable name="html-table">
2806
- <xsl:variable name="doc_ns">
2807
-
2808
- </xsl:variable>
2809
- <xsl:variable name="ns">
2810
- <xsl:choose>
2811
- <xsl:when test="normalize-space($doc_ns) != ''">
2812
- <xsl:value-of select="normalize-space($doc_ns)"/>
2813
- </xsl:when>
2814
- <xsl:otherwise>
2815
- <xsl:value-of select="substring-before(name(/*), '-')"/>
2816
- </xsl:otherwise>
2817
- </xsl:choose>
2818
- </xsl:variable>
2819
- <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
2820
- <!-- <xsl:element name="{$ns}:table"> -->
2821
- <xsl:for-each select="*[local-name() = 'dl'][1]">
2822
- <tbody>
2823
- <xsl:apply-templates mode="dl"/>
2824
- </tbody>
2825
- </xsl:for-each>
2826
- <!-- </xsl:element> -->
2827
- </xsl:variable>
2976
+ <xsl:variable name="key_iso">
2828
2977
 
2829
- <xsl:call-template name="calculate-column-widths">
2830
- <xsl:with-param name="cols-count" select="2"/>
2831
- <xsl:with-param name="table" select="$html-table"/>
2832
- </xsl:call-template>
2833
-
2834
- </xsl:if>
2835
- </xsl:variable>
2836
-
2837
-
2838
- <xsl:variable name="maxlength_dt">
2839
- <xsl:for-each select="*[local-name() = 'dl'][1]">
2840
- <xsl:call-template name="getMaxLength_dt"/>
2841
- </xsl:for-each>
2842
- </xsl:variable>
2843
-
2844
- <xsl:if test="xalan:nodeset($references)//fn">
2978
+ </xsl:variable>
2979
+
2980
+ <!-- current hierarchy is 'figure' element -->
2981
+ <xsl:variable name="following_dl_colwidths">
2982
+ <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
2983
+ <xsl:variable name="html-table">
2984
+ <xsl:variable name="doc_ns">
2985
+
2986
+ </xsl:variable>
2987
+ <xsl:variable name="ns">
2988
+ <xsl:choose>
2989
+ <xsl:when test="normalize-space($doc_ns) != ''">
2990
+ <xsl:value-of select="normalize-space($doc_ns)"/>
2991
+ </xsl:when>
2992
+ <xsl:otherwise>
2993
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
2994
+ </xsl:otherwise>
2995
+ </xsl:choose>
2996
+ </xsl:variable>
2997
+
2998
+ <xsl:for-each select="*[local-name() = 'dl'][1]">
2999
+ <tbody>
3000
+ <xsl:apply-templates mode="dl"/>
3001
+ </tbody>
3002
+ </xsl:for-each>
3003
+ </xsl:variable>
3004
+
3005
+ <xsl:call-template name="calculate-column-widths">
3006
+ <xsl:with-param name="cols-count" select="2"/>
3007
+ <xsl:with-param name="table" select="$html-table"/>
3008
+ </xsl:call-template>
3009
+
3010
+ </xsl:if>
3011
+ </xsl:variable>
3012
+
3013
+ <xsl:variable name="maxlength_dt">
3014
+ <xsl:for-each select="*[local-name() = 'dl'][1]">
3015
+ <xsl:call-template name="getMaxLength_dt"/>
3016
+ </xsl:for-each>
3017
+ </xsl:variable>
3018
+
2845
3019
  <fo:block>
2846
3020
  <fo:table width="95%" table-layout="fixed">
2847
3021
  <xsl:if test="normalize-space($key_iso) = 'true'">
@@ -2868,20 +3042,18 @@
2868
3042
  <fo:table-row>
2869
3043
  <fo:table-cell>
2870
3044
  <fo:block>
2871
- <fo:inline font-size="80%" padding-right="5mm" vertical-align="super" id="{@id}">
2872
-
3045
+ <fo:inline id="{@id}" xsl:use-attribute-sets="figure-fn-number-style">
2873
3046
  <xsl:value-of select="@reference"/>
2874
3047
  </fo:inline>
2875
3048
  </fo:block>
2876
3049
  </fo:table-cell>
2877
3050
  <fo:table-cell>
2878
- <fo:block text-align="justify" margin-bottom="12pt">
2879
-
3051
+ <fo:block xsl:use-attribute-sets="figure-fn-body-style">
2880
3052
  <xsl:if test="normalize-space($key_iso) = 'true'">
2881
- <xsl:attribute name="margin-bottom">0</xsl:attribute>
3053
+
3054
+ <xsl:attribute name="margin-bottom">0</xsl:attribute>
3055
+
2882
3056
  </xsl:if>
2883
-
2884
- <!-- <xsl:apply-templates /> -->
2885
3057
  <xsl:copy-of select="./node()"/>
2886
3058
  </fo:block>
2887
3059
  </fo:table-cell>
@@ -2894,14 +3066,8 @@
2894
3066
  </xsl:if>
2895
3067
 
2896
3068
  </xsl:template><xsl:template match="*[local-name()='fn']">
2897
- <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
2898
- <fo:inline font-size="80%" keep-with-previous.within-line="always">
2899
-
2900
-
2901
-
2902
-
2903
-
2904
-
3069
+ <fo:inline xsl:use-attribute-sets="fn-reference-style">
3070
+
2905
3071
 
2906
3072
 
2907
3073
 
@@ -2925,10 +3091,10 @@
2925
3091
  <xsl:variable name="isDeleted" select="@deleted"/>
2926
3092
  <fo:block-container>
2927
3093
 
2928
- <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
2929
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
2930
- </xsl:if>
2931
-
3094
+ <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
3095
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
3096
+ </xsl:if>
3097
+
2932
3098
 
2933
3099
  <xsl:if test="parent::*[local-name() = 'note']">
2934
3100
  <xsl:attribute name="margin-left">
@@ -2945,11 +3111,11 @@
2945
3111
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
2946
3112
  </xsl:call-template>
2947
3113
 
2948
- <fo:block-container>
2949
-
2950
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
2951
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
3114
+ <fo:block-container margin-left="0mm">
3115
+
2952
3116
 
3117
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
3118
+
2953
3119
 
2954
3120
  <xsl:variable name="parent" select="local-name(..)"/>
2955
3121
 
@@ -2960,23 +3126,19 @@
2960
3126
  <xsl:choose>
2961
3127
  <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
2962
3128
 
2963
-
2964
- <fo:block margin-bottom="12pt" text-align="left">
2965
-
2966
- <xsl:variable name="title-where">
3129
+ <fo:block margin-bottom="12pt" text-align="left">
2967
3130
 
2968
-
2969
- <xsl:call-template name="getTitle">
2970
- <xsl:with-param name="name" select="'title-where'"/>
3131
+ <xsl:variable name="title-where">
3132
+ <xsl:call-template name="getLocalizedString">
3133
+ <xsl:with-param name="key">where</xsl:with-param>
2971
3134
  </xsl:call-template>
2972
-
2973
- </xsl:variable>
2974
- <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
2975
- <xsl:apply-templates select="*[local-name()='dt']/*"/>
2976
- <xsl:text/>
2977
- <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
2978
- </fo:block>
2979
-
3135
+ </xsl:variable>
3136
+ <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
3137
+ <xsl:apply-templates select="*[local-name()='dt']/*"/>
3138
+ <xsl:text/>
3139
+ <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
3140
+ </fo:block>
3141
+
2980
3142
  </xsl:when>
2981
3143
  <xsl:when test="$parent = 'formula'"> <!-- a few components -->
2982
3144
  <fo:block margin-bottom="12pt" text-align="left">
@@ -2985,12 +3147,9 @@
2985
3147
 
2986
3148
 
2987
3149
  <xsl:variable name="title-where">
2988
-
2989
-
2990
- <xsl:call-template name="getTitle">
2991
- <xsl:with-param name="name" select="'title-where'"/>
2992
- </xsl:call-template>
2993
-
3150
+ <xsl:call-template name="getLocalizedString">
3151
+ <xsl:with-param name="key">where</xsl:with-param>
3152
+ </xsl:call-template>
2994
3153
  </xsl:variable>
2995
3154
  <xsl:value-of select="$title-where"/>
2996
3155
  </fo:block>
@@ -3002,12 +3161,9 @@
3002
3161
 
3003
3162
 
3004
3163
  <xsl:variable name="title-key">
3005
-
3006
-
3007
- <xsl:call-template name="getTitle">
3008
- <xsl:with-param name="name" select="'title-key'"/>
3009
- </xsl:call-template>
3010
-
3164
+ <xsl:call-template name="getLocalizedString">
3165
+ <xsl:with-param name="key">key</xsl:with-param>
3166
+ </xsl:call-template>
3011
3167
  </xsl:variable>
3012
3168
  <xsl:value-of select="$title-key"/>
3013
3169
  </fo:block>
@@ -3029,9 +3185,7 @@
3029
3185
  <fo:table width="95%" table-layout="fixed">
3030
3186
 
3031
3187
  <xsl:choose>
3032
- <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
3033
- <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
3034
- </xsl:when>
3188
+ <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'"/>
3035
3189
  <xsl:when test="normalize-space($key_iso) = 'true'">
3036
3190
  <xsl:attribute name="font-size">10pt</xsl:attribute>
3037
3191
 
@@ -3052,12 +3206,9 @@
3052
3206
  </xsl:otherwise>
3053
3207
  </xsl:choose>
3054
3208
  </xsl:variable>
3055
- <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
3056
- <!-- <xsl:element name="{$ns}:table"> -->
3057
- <tbody>
3058
- <xsl:apply-templates mode="dl"/>
3059
- </tbody>
3060
- <!-- </xsl:element> -->
3209
+ <tbody>
3210
+ <xsl:apply-templates mode="dl"/>
3211
+ </tbody>
3061
3212
  </xsl:variable>
3062
3213
  <!-- html-table<xsl:copy-of select="$html-table"/> -->
3063
3214
  <xsl:variable name="colwidths">
@@ -3137,8 +3288,6 @@
3137
3288
  </xsl:for-each>
3138
3289
  </xsl:otherwise>
3139
3290
  </xsl:choose>
3140
- <!-- <fo:table-column column-width="15%"/>
3141
- <fo:table-column column-width="85%"/> -->
3142
3291
  </xsl:otherwise>
3143
3292
  </xsl:choose>
3144
3293
  </xsl:template><xsl:template name="getMaxLength_dt">
@@ -3153,12 +3302,6 @@
3153
3302
  </xsl:for-each>
3154
3303
  </xsl:variable>
3155
3304
  <xsl:variable name="maxLength">
3156
- <!-- <xsl:for-each select="*[local-name()='dt']">
3157
- <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
3158
- <xsl:if test="position() = 1">
3159
- <xsl:value-of select="string-length(normalize-space(.))"/>
3160
- </xsl:if>
3161
- </xsl:for-each> -->
3162
3305
  <xsl:for-each select="xalan:nodeset($lengths)/length">
3163
3306
  <xsl:sort select="." data-type="number" order="descending"/>
3164
3307
  <xsl:if test="position() = 1">
@@ -3184,12 +3327,12 @@
3184
3327
  <xsl:if test="normalize-space($key_iso) = 'true'">
3185
3328
  <xsl:attribute name="margin-top">0</xsl:attribute>
3186
3329
  </xsl:if>
3187
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3330
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
3188
3331
  </fo:block>
3189
3332
  </fo:table-cell>
3190
3333
  <fo:table-cell>
3191
3334
  <fo:block>
3192
- <xsl:apply-templates/>
3335
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
3193
3336
  </fo:block>
3194
3337
  </fo:table-cell>
3195
3338
  </fo:table-row>
@@ -3200,80 +3343,49 @@
3200
3343
  </td>
3201
3344
  <td>
3202
3345
 
3203
-
3204
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
3205
-
3346
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]">
3347
+ <xsl:with-param name="process">true</xsl:with-param>
3348
+ </xsl:apply-templates>
3349
+
3206
3350
  </td>
3207
3351
  </tr>
3208
3352
 
3209
3353
  </xsl:template><xsl:template match="*[local-name()='dt']">
3210
3354
  <xsl:param name="key_iso"/>
3211
3355
 
3212
- <fo:table-row>
3213
-
3214
-
3356
+ <fo:table-row xsl:use-attribute-sets="dt-row-style">
3215
3357
  <fo:table-cell>
3216
3358
 
3217
- <fo:block margin-top="6pt">
3359
+ <fo:block xsl:use-attribute-sets="dt-style">
3218
3360
  <xsl:copy-of select="@id"/>
3219
3361
 
3220
-
3221
3362
  <xsl:if test="normalize-space($key_iso) = 'true'">
3222
3363
  <xsl:attribute name="margin-top">0</xsl:attribute>
3223
-
3224
3364
  </xsl:if>
3225
3365
 
3226
3366
 
3227
3367
 
3228
-
3229
-
3230
-
3231
-
3232
3368
  <xsl:apply-templates/>
3233
- <!-- <xsl:if test="$namespace = 'gb'">
3234
- <xsl:if test="ancestor::*[local-name()='formula']">
3235
- <xsl:text>—</xsl:text>
3236
- </xsl:if>
3237
- </xsl:if> -->
3238
3369
  </fo:block>
3239
3370
  </fo:table-cell>
3240
3371
  <fo:table-cell>
3241
3372
  <fo:block>
3242
3373
 
3243
- <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
3244
- <xsl:if test="local-name(*[1]) != 'stem'">
3245
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
3246
- </xsl:if>
3247
- </xsl:if> -->
3248
-
3249
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
3250
-
3374
+
3375
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]">
3376
+ <xsl:with-param name="process">true</xsl:with-param>
3377
+ </xsl:apply-templates>
3251
3378
  </fo:block>
3252
3379
  </fo:table-cell>
3253
3380
  </fo:table-row>
3254
- <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
3255
- <xsl:if test="local-name(*[1]) = 'stem'">
3256
- <fo:table-row>
3257
- <fo:table-cell>
3258
- <fo:block margin-top="6pt">
3259
- <xsl:if test="normalize-space($key_iso) = 'true'">
3260
- <xsl:attribute name="margin-top">0</xsl:attribute>
3261
- </xsl:if>
3262
- <xsl:text>&#xA0;</xsl:text>
3263
- </fo:block>
3264
- </fo:table-cell>
3265
- <fo:table-cell>
3266
- <fo:block>
3267
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
3268
- </fo:block>
3269
- </fo:table-cell>
3270
- </fo:table-row>
3271
- </xsl:if>
3272
- </xsl:if> -->
3273
3381
  </xsl:template><xsl:template match="*[local-name()='dd']" mode="dl"/><xsl:template match="*[local-name()='dd']" mode="dl_process">
3274
3382
  <xsl:apply-templates/>
3275
- </xsl:template><xsl:template match="*[local-name()='dd']"/><xsl:template match="*[local-name()='dd']" mode="process">
3276
- <xsl:apply-templates/>
3383
+ </xsl:template><xsl:template match="*[local-name()='dd']">
3384
+ <xsl:param name="process">false</xsl:param>
3385
+ <xsl:if test="$process = 'true'">
3386
+ <xsl:apply-templates select="@language"/>
3387
+ <xsl:apply-templates/>
3388
+ </xsl:if>
3277
3389
  </xsl:template><xsl:template match="*[local-name()='dd']/*[local-name()='p']" mode="inline">
3278
3390
  <fo:inline><xsl:text> </xsl:text><xsl:apply-templates/></fo:inline>
3279
3391
  </xsl:template><xsl:template match="*[local-name()='em']">
@@ -3297,6 +3409,7 @@
3297
3409
  </fo:inline>
3298
3410
  </xsl:template><xsl:template match="*[local-name()='tt']">
3299
3411
  <fo:inline xsl:use-attribute-sets="tt-style">
3412
+
3300
3413
  <xsl:variable name="_font-size">
3301
3414
 
3302
3415
 
@@ -3333,7 +3446,22 @@
3333
3446
  <xsl:apply-templates/>
3334
3447
  </fo:inline>
3335
3448
  </xsl:template><xsl:template match="*[local-name()='add']">
3449
+ <xsl:param name="skip">true</xsl:param>
3336
3450
  <xsl:choose>
3451
+ <xsl:when test="starts-with(., $ace_tag)"> <!-- examples: ace-tag_A1_start, ace-tag_A2_end, C1_start, AC_start -->
3452
+ <xsl:choose>
3453
+ <xsl:when test="$skip = 'true' and ((local-name(../..) = 'note' and not(preceding-sibling::node())) or (local-name(..) = 'title' and preceding-sibling::node()[1][local-name() = 'tab'])) and ../node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]"><!-- start tag displayed in template name="note" and title --></xsl:when>
3454
+ <xsl:otherwise>
3455
+ <fo:inline>
3456
+ <xsl:call-template name="insertTag">
3457
+ <xsl:with-param name="type" select="substring-after(substring-after(., $ace_tag), '_')"/> <!-- start or end -->
3458
+ <xsl:with-param name="kind" select="substring(substring-before(substring-after(., $ace_tag), '_'), 1, 1)"/> <!-- A or C -->
3459
+ <xsl:with-param name="value" select="substring(substring-before(substring-after(., $ace_tag), '_'), 2)"/> <!-- 1, 2, C -->
3460
+ </xsl:call-template>
3461
+ </fo:inline>
3462
+ </xsl:otherwise>
3463
+ </xsl:choose>
3464
+ </xsl:when>
3337
3465
  <xsl:when test="@amendment">
3338
3466
  <fo:inline>
3339
3467
  <xsl:call-template name="insertTag">
@@ -3368,7 +3496,6 @@
3368
3496
  </fo:inline>
3369
3497
  </xsl:otherwise>
3370
3498
  </xsl:choose>
3371
-
3372
3499
  </xsl:template><xsl:template name="insertTag">
3373
3500
  <xsl:param name="type"/>
3374
3501
  <xsl:param name="kind"/>
@@ -3376,22 +3503,20 @@
3376
3503
  <xsl:variable name="add_width" select="string-length($value) * 20"/>
3377
3504
  <xsl:variable name="maxwidth" select="60 + $add_width"/>
3378
3505
  <fo:instream-foreign-object fox:alt-text="OpeningTag" baseline-shift="-20%"><!-- alignment-baseline="middle" -->
3379
- <!-- <xsl:attribute name="width">7mm</xsl:attribute>
3380
- <xsl:attribute name="content-height">100%</xsl:attribute> -->
3381
3506
  <xsl:attribute name="height">5mm</xsl:attribute>
3382
3507
  <xsl:attribute name="content-width">100%</xsl:attribute>
3383
3508
  <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
3384
3509
  <xsl:attribute name="scaling">uniform</xsl:attribute>
3385
3510
  <svg xmlns="http://www.w3.org/2000/svg" width="{$maxwidth + 32}" height="80">
3386
3511
  <g>
3387
- <xsl:if test="$type = 'closing'">
3512
+ <xsl:if test="$type = 'closing' or $type = 'end'">
3388
3513
  <xsl:attribute name="transform">scale(-1 1) translate(-<xsl:value-of select="$maxwidth + 32"/>,0)</xsl:attribute>
3389
3514
  </xsl:if>
3390
3515
  <polyline points="0,0 {$maxwidth},0 {$maxwidth + 30},40 {$maxwidth},80 0,80 " stroke="black" stroke-width="5" fill="white"/>
3391
3516
  <line x1="0" y1="0" x2="0" y2="80" stroke="black" stroke-width="20"/>
3392
3517
  </g>
3393
3518
  <text font-family="Arial" x="15" y="57" font-size="40pt">
3394
- <xsl:if test="$type = 'closing'">
3519
+ <xsl:if test="$type = 'closing' or $type = 'end'">
3395
3520
  <xsl:attribute name="x">25</xsl:attribute>
3396
3521
  </xsl:if>
3397
3522
  <xsl:value-of select="$kind"/><tspan dy="10" font-size="30pt"><xsl:value-of select="$value"/></tspan>
@@ -3435,7 +3560,11 @@
3435
3560
  <xsl:with-param name="text" select="substring($text,2)"/>
3436
3561
  </xsl:call-template>
3437
3562
  </xsl:if>
3438
- </xsl:template><xsl:template name="tokenize">
3563
+ </xsl:template><xsl:template match="*[local-name() = 'pagebreak']">
3564
+ <fo:block break-after="page"/>
3565
+ <fo:block> </fo:block>
3566
+ <fo:block break-after="page"/>
3567
+ </xsl:template><xsl:template name="tokenize">
3439
3568
  <xsl:param name="text"/>
3440
3569
  <xsl:param name="separator" select="' '"/>
3441
3570
  <xsl:choose>
@@ -3595,14 +3724,6 @@
3595
3724
 
3596
3725
  <xsl:copy-of select="xalan:nodeset($simple-table-rowspan)"/>
3597
3726
 
3598
- <!-- <xsl:choose>
3599
- <xsl:when test="current()//*[local-name()='th'][@colspan] or current()//*[local-name()='td'][@colspan] ">
3600
-
3601
- </xsl:when>
3602
- <xsl:otherwise>
3603
- <xsl:copy-of select="current()"/>
3604
- </xsl:otherwise>
3605
- </xsl:choose> -->
3606
3727
  </xsl:variable>
3607
3728
  <xsl:copy-of select="$simple-table"/>
3608
3729
  </xsl:template><xsl:template match="*[local-name()='thead'] | *[local-name()='tbody']" mode="simple-table-colspan">
@@ -3721,8 +3842,6 @@
3721
3842
  <xsl:choose>
3722
3843
  <xsl:when test="contains($str2, ' ')">
3723
3844
  <xsl:variable name="substr" select="substring-before($str2, ' ')"/>
3724
- <!-- <xsl:value-of select="translate(substring($substr, 1, 1), $lower, $upper)"/>
3725
- <xsl:value-of select="substring($substr, 2)"/> -->
3726
3845
  <xsl:call-template name="capitalize">
3727
3846
  <xsl:with-param name="str" select="$substr"/>
3728
3847
  </xsl:call-template>
@@ -3732,8 +3851,6 @@
3732
3851
  </xsl:call-template>
3733
3852
  </xsl:when>
3734
3853
  <xsl:otherwise>
3735
- <!-- <xsl:value-of select="translate(substring($str2, 1, 1), $lower, $upper)"/>
3736
- <xsl:value-of select="substring($str2, 2)"/> -->
3737
3854
  <xsl:call-template name="capitalize">
3738
3855
  <xsl:with-param name="str" select="$str2"/>
3739
3856
  </xsl:call-template>
@@ -3761,6 +3878,7 @@
3761
3878
  <xsl:apply-templates select="." mode="mathml"/>
3762
3879
  </xsl:variable>
3763
3880
  <fo:instream-foreign-object fox:alt-text="Math">
3881
+
3764
3882
 
3765
3883
 
3766
3884
  <xsl:variable name="comment_text_following" select="following-sibling::node()[1][self::comment()]"/>
@@ -3792,7 +3910,7 @@
3792
3910
  </xsl:attribute>
3793
3911
 
3794
3912
 
3795
- <!-- <xsl:copy-of select="."/> -->
3913
+
3796
3914
  <xsl:copy-of select="xalan:nodeset($mathml)"/>
3797
3915
  </fo:instream-foreign-object>
3798
3916
  </fo:inline>
@@ -3851,6 +3969,10 @@
3851
3969
 
3852
3970
 
3853
3971
 
3972
+
3973
+
3974
+
3975
+
3854
3976
  <xsl:choose>
3855
3977
  <xsl:when test="$target_text = ''">
3856
3978
  <xsl:apply-templates/>
@@ -3874,19 +3996,19 @@
3874
3996
  </fo:inline>
3875
3997
  </xsl:template><xsl:template match="*[local-name()='appendix']">
3876
3998
  <fo:block id="{@id}" xsl:use-attribute-sets="appendix-style">
3877
- <xsl:apply-templates select="*[local-name()='title']" mode="process"/>
3999
+ <xsl:apply-templates select="*[local-name()='title']"/>
3878
4000
  </fo:block>
3879
- <xsl:apply-templates/>
3880
- </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']"/><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" mode="process">
4001
+ <xsl:apply-templates select="node()[not(local-name()='title')]"/>
4002
+ </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" priority="2">
3881
4003
  <xsl:variable name="level">
3882
4004
  <xsl:call-template name="getLevel"/>
3883
4005
  </xsl:variable>
3884
4006
  <fo:inline role="H{$level}"><xsl:apply-templates/></fo:inline>
3885
4007
  </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']" priority="2">
3886
4008
  <fo:block id="{@id}" xsl:use-attribute-sets="appendix-example-style">
3887
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4009
+ <xsl:apply-templates select="*[local-name()='name']"/>
3888
4010
  </fo:block>
3889
- <xsl:apply-templates/>
4011
+ <xsl:apply-templates select="node()[not(local-name()='name')]"/>
3890
4012
  </xsl:template><xsl:template match="*[local-name() = 'callout']">
3891
4013
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">&lt;<xsl:apply-templates/>&gt;</fo:basic-link>
3892
4014
  </xsl:template><xsl:template match="*[local-name() = 'annotation']">
@@ -3908,7 +4030,6 @@
3908
4030
  </fo:inline>
3909
4031
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
3910
4032
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
3911
-
3912
4033
  <xsl:apply-templates/>
3913
4034
  </fo:basic-link>
3914
4035
  </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
@@ -3936,62 +4057,77 @@
3936
4057
  <fo:inline>
3937
4058
  <xsl:apply-templates/>
3938
4059
  </fo:inline>
3939
- </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']" mode="presentation">
4060
+ </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']" mode="formula_number"> <!-- show by demand -->
3940
4061
  <xsl:if test="normalize-space() != ''">
3941
4062
  <xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
3942
4063
  </xsl:if>
3943
4064
  </xsl:template><xsl:template match="*[local-name() = 'note']" name="note">
3944
4065
 
3945
4066
  <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
4067
+
4068
+
3946
4069
 
3947
- <xsl:if test="../@type = 'source' or ../@type = 'abbreviation'">
3948
- <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
3949
- </xsl:if>
3950
4070
 
3951
4071
 
3952
4072
 
3953
4073
 
3954
4074
 
4075
+
4076
+
4077
+ <xsl:if test="../@type = 'source' or ../@type = 'abbreviation'">
4078
+ <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
4079
+ </xsl:if>
4080
+
4081
+
3955
4082
  <fo:block-container margin-left="0mm">
4083
+
3956
4084
 
3957
4085
 
3958
4086
 
4087
+
3959
4088
 
3960
-
3961
-
3962
-
3963
-
3964
- <fo:block>
3965
-
3966
-
3967
- <xsl:attribute name="font-size">10pt</xsl:attribute>
3968
- <xsl:attribute name="text-indent">0</xsl:attribute>
3969
- <xsl:attribute name="padding-top">1.5mm</xsl:attribute>
3970
- <xsl:if test="../@type = 'source' or ../@type = 'abbreviation'">
3971
- <xsl:attribute name="font-size">9pt</xsl:attribute>
3972
- <xsl:attribute name="text-align">justify</xsl:attribute>
3973
- <xsl:attribute name="padding-top">0mm</xsl:attribute>
3974
- </xsl:if>
3975
-
3976
-
3977
-
3978
-
4089
+ <fo:block>
4090
+
4091
+
3979
4092
 
3980
- <fo:inline xsl:use-attribute-sets="note-name-style">
3981
4093
 
3982
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3983
- </fo:inline>
3984
- <xsl:apply-templates/>
3985
- </fo:block>
3986
-
3987
-
4094
+
4095
+
4096
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
4097
+ <xsl:attribute name="text-indent">0</xsl:attribute>
4098
+ <xsl:attribute name="padding-top">1.5mm</xsl:attribute>
4099
+ <xsl:if test="../@type = 'source' or ../@type = 'abbreviation'">
4100
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
4101
+ <xsl:attribute name="text-align">justify</xsl:attribute>
4102
+ <xsl:attribute name="padding-top">0mm</xsl:attribute>
4103
+ </xsl:if>
4104
+
4105
+
4106
+ <fo:inline xsl:use-attribute-sets="note-name-style">
4107
+
4108
+
4109
+
4110
+ <!-- if note contains only one element and first and last childs are `add` ace-tag, then move start ace-tag before NOTE's name-->
4111
+ <xsl:if test="count(*[not(local-name() = 'name')]) = 1 and *[not(local-name() = 'name')]/node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]">
4112
+ <xsl:apply-templates select="*[not(local-name() = 'name')]/node()[1][local-name() = 'add'][starts-with(text(), $ace_tag)]">
4113
+ <xsl:with-param name="skip">false</xsl:with-param>
4114
+ </xsl:apply-templates>
4115
+ </xsl:if>
4116
+
4117
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
4118
+
4119
+ </fo:inline>
4120
+
4121
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4122
+ </fo:block>
4123
+
3988
4124
  </fo:block-container>
3989
4125
  </fo:block-container>
3990
4126
 
3991
4127
  </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'p']">
3992
4128
  <xsl:variable name="num"><xsl:number/></xsl:variable>
3993
4129
  <xsl:choose>
3994
- <xsl:when test="$num = 1">
4130
+ <xsl:when test="$num = 1"> <!-- display first NOTE's paragraph in the same line with label NOTE -->
3995
4131
  <fo:inline xsl:use-attribute-sets="note-p-style">
3996
4132
  <xsl:apply-templates/>
3997
4133
  </fo:inline>
@@ -4006,12 +4142,16 @@
4006
4142
  <fo:block id="{@id}" xsl:use-attribute-sets="termnote-style">
4007
4143
 
4008
4144
  <fo:inline xsl:use-attribute-sets="termnote-name-style">
4145
+
4146
+
4147
+
4148
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
4009
4149
 
4010
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4011
4150
  </fo:inline>
4012
- <xsl:apply-templates/>
4151
+
4152
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4013
4153
  </fo:block>
4014
- </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name'] | *[local-name() = 'termnote']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name']" mode="presentation">
4154
+ </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name']">
4015
4155
  <xsl:param name="sfx"/>
4016
4156
  <xsl:variable name="suffix">
4017
4157
  <xsl:choose>
@@ -4030,7 +4170,7 @@
4030
4170
  <xsl:apply-templates/>
4031
4171
  <xsl:value-of select="$suffix"/>
4032
4172
  </xsl:if>
4033
- </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']" mode="presentation">
4173
+ </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']">
4034
4174
  <xsl:param name="sfx"/>
4035
4175
  <xsl:variable name="suffix">
4036
4176
  <xsl:choose>
@@ -4057,25 +4197,23 @@
4057
4197
  <xsl:apply-templates/>
4058
4198
  </fo:block>
4059
4199
  </xsl:template><xsl:template match="*[local-name() = 'term']">
4060
- <!-- <xsl:message>'term' <xsl:number/> processing, name=<xsl:value-of select="iso:name"/>, preferred=<xsl:value-of select="iso:preferred"/>...</xsl:message> -->
4061
4200
  <fo:block id="{@id}" xsl:use-attribute-sets="term-style">
4062
4201
 
4063
4202
 
4203
+
4204
+
4064
4205
  <xsl:if test="parent::*[local-name() = 'term'] and not(preceding-sibling::*[local-name() = 'term'])">
4065
4206
 
4066
4207
  </xsl:if>
4067
- <xsl:apply-templates/>
4208
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4068
4209
  </fo:block>
4069
- </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']" mode="presentation">
4210
+ </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']">
4070
4211
  <xsl:if test="normalize-space() != ''">
4071
4212
  <xsl:variable name="level">
4072
4213
  <xsl:call-template name="getLevelTermName"/>
4073
4214
  </xsl:variable>
4074
4215
  <fo:inline role="H{$level}">
4075
4216
  <xsl:apply-templates/>
4076
- <!-- <xsl:if test="$namespace = 'gb' or $namespace = 'ogc'">
4077
- <xsl:text>.</xsl:text>
4078
- </xsl:if> -->
4079
4217
  </fo:inline>
4080
4218
  </xsl:if>
4081
4219
  </xsl:template><xsl:template match="*[local-name() = 'figure']" name="figure">
@@ -4088,9 +4226,10 @@
4088
4226
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
4089
4227
  </xsl:call-template>
4090
4228
 
4091
- <fo:block>
4092
-
4093
- <xsl:apply-templates/>
4229
+
4230
+
4231
+ <fo:block xsl:use-attribute-sets="figure-style">
4232
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4094
4233
  </fo:block>
4095
4234
  <xsl:call-template name="fn_display_figure"/>
4096
4235
  <xsl:for-each select="*[local-name() = 'note']">
@@ -4098,14 +4237,15 @@
4098
4237
  </xsl:for-each>
4099
4238
 
4100
4239
 
4101
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4240
+ <xsl:apply-templates select="*[local-name() = 'name']"/> <!-- show figure's name AFTER image -->
4241
+
4102
4242
 
4103
4243
  </fo:block-container>
4104
4244
  </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']">
4105
4245
  <fo:block id="{@id}">
4106
- <xsl:apply-templates/>
4246
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4107
4247
  </fo:block>
4108
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4248
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
4109
4249
  </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']//*[local-name() = 'p']">
4110
4250
  <fo:block xsl:use-attribute-sets="figure-pseudocode-p-style">
4111
4251
  <xsl:apply-templates/>
@@ -4217,9 +4357,7 @@
4217
4357
  <xsl:variable name="bis" select="java:java.io.ByteArrayInputStream.new($fileContent)"/>
4218
4358
  <xsl:variable name="bufferedImage" select="java:javax.imageio.ImageIO.read($bis)"/>
4219
4359
  <xsl:variable name="width" select="java:getWidth($bufferedImage)"/>
4220
- <!-- width=<xsl:value-of select="$width"/> -->
4221
4360
  <xsl:variable name="height" select="java:getHeight($bufferedImage)"/>
4222
- <!-- height=<xsl:value-of select="$height"/> -->
4223
4361
  <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="enable-background:new 0 0 595.28 841.89;" height="{$height}" width="{$width}" viewBox="0 0 {$width} {$height}" y="0px" x="0px" id="Layer_1" version="1.1">
4224
4362
  <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="{@src}" height="{$height}" width="{$width}" style="overflow:visible;"/>
4225
4363
  <xsl:call-template name="svg_cross">
@@ -4489,7 +4627,7 @@
4489
4627
  </fo:basic-link>
4490
4628
  </fo:block>
4491
4629
  </fo:block-container>
4492
- </xsl:template><xsl:template match="*[local-name() = 'emf']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
4630
+ </xsl:template><xsl:template match="*[local-name() = 'emf']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
4493
4631
  <xsl:apply-templates mode="contents"/>
4494
4632
  <xsl:text> </xsl:text>
4495
4633
  </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name'] | *[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="bookmarks">
@@ -4501,11 +4639,72 @@
4501
4639
  <xsl:value-of select="."/>
4502
4640
  </xsl:template><xsl:template match="node()" mode="contents">
4503
4641
  <xsl:apply-templates mode="contents"/>
4642
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title' or @type = 'section-title']" priority="2" mode="contents">
4643
+ <xsl:variable name="level">
4644
+ <xsl:call-template name="getLevel">
4645
+ <xsl:with-param name="depth" select="@depth"/>
4646
+ </xsl:call-template>
4647
+ </xsl:variable>
4648
+
4649
+ <xsl:variable name="section">
4650
+ <xsl:choose>
4651
+ <xsl:when test="@type = 'section-title'"/>
4652
+ <xsl:otherwise>
4653
+ <xsl:value-of select="*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
4654
+ </xsl:otherwise>
4655
+ </xsl:choose>
4656
+ </xsl:variable>
4657
+
4658
+ <xsl:variable name="type"><xsl:value-of select="@type"/></xsl:variable>
4659
+
4660
+ <xsl:variable name="display">
4661
+ <xsl:choose>
4662
+ <xsl:when test="normalize-space(@id) = ''">false</xsl:when>
4663
+ <xsl:when test="$level &lt;= $toc_level">true</xsl:when>
4664
+ <xsl:otherwise>false</xsl:otherwise>
4665
+ </xsl:choose>
4666
+ </xsl:variable>
4667
+
4668
+ <xsl:variable name="skip">false</xsl:variable>
4669
+
4670
+ <xsl:if test="$skip = 'false'">
4671
+
4672
+ <xsl:variable name="title">
4673
+ <xsl:choose>
4674
+ <xsl:when test="*[local-name() = 'tab']">
4675
+ <xsl:choose>
4676
+ <xsl:when test="@type = 'section-title'">
4677
+ <xsl:value-of select="*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
4678
+ <xsl:text>: </xsl:text>
4679
+ <xsl:copy-of select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
4680
+ </xsl:when>
4681
+ <xsl:otherwise>
4682
+ <xsl:copy-of select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
4683
+ </xsl:otherwise>
4684
+ </xsl:choose>
4685
+ </xsl:when>
4686
+ <xsl:otherwise>
4687
+ <xsl:copy-of select="node()"/>
4688
+ </xsl:otherwise>
4689
+ </xsl:choose>
4690
+ </xsl:variable>
4691
+
4692
+ <xsl:variable name="root">
4693
+ <xsl:if test="ancestor-or-self::*[local-name() = 'preface']">preface</xsl:if>
4694
+ <xsl:if test="ancestor-or-self::*[local-name() = 'annex']">annex</xsl:if>
4695
+ </xsl:variable>
4696
+
4697
+ <item id="{@id}" level="{$level}" section="{$section}" type="{$type}" root="{$root}" display="{$display}">
4698
+ <title>
4699
+ <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
4700
+ </title>
4701
+ </item>
4702
+ </xsl:if>
4504
4703
  </xsl:template><xsl:template match="node()" mode="bookmarks">
4505
4704
  <xsl:apply-templates mode="bookmarks"/>
4506
4705
  </xsl:template><xsl:template match="*[local-name() = 'title' or local-name() = 'name']//*[local-name() = 'stem']" mode="contents">
4507
4706
  <xsl:apply-templates select="."/>
4508
- </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
4707
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'references']/*[local-name() = 'bibitem']" mode="contents"/><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
4509
4708
  <xsl:apply-templates mode="bookmarks"/>
4510
4709
  </xsl:template><xsl:template name="addBookmarks">
4511
4710
  <xsl:param name="contents"/>
@@ -4595,8 +4794,6 @@
4595
4794
 
4596
4795
 
4597
4796
 
4598
-
4599
-
4600
4797
  </fo:bookmark-tree>
4601
4798
  </xsl:if>
4602
4799
  </xsl:template><xsl:template name="insertFigureBookmarks">
@@ -4667,7 +4864,7 @@
4667
4864
  <xsl:apply-templates mode="bookmark"/>
4668
4865
  </xsl:otherwise>
4669
4866
  </xsl:choose>
4670
- </xsl:template><xsl:template match="title" mode="bookmark"/><xsl:template match="text()" mode="bookmark"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
4867
+ </xsl:template><xsl:template match="title" mode="bookmark"/><xsl:template match="text()" mode="bookmark"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']">
4671
4868
  <xsl:if test="normalize-space() != ''">
4672
4869
  <fo:block xsl:use-attribute-sets="figure-name-style">
4673
4870
 
@@ -4676,16 +4873,13 @@
4676
4873
  </fo:block>
4677
4874
  </xsl:if>
4678
4875
  </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'fn']" priority="2"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'note']"/><xsl:template match="*[local-name() = 'title']" mode="contents_item">
4679
- <xsl:apply-templates mode="contents_item"/>
4876
+ <xsl:param name="mode">bookmarks</xsl:param>
4877
+ <xsl:apply-templates mode="contents_item">
4878
+ <xsl:with-param name="mode" select="$mode"/>
4879
+ </xsl:apply-templates>
4680
4880
  <!-- <xsl:text> </xsl:text> -->
4681
4881
  </xsl:template><xsl:template name="getSection">
4682
4882
  <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
4683
- <!--
4684
- <xsl:for-each select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()">
4685
- <xsl:value-of select="."/>
4686
- </xsl:for-each>
4687
- -->
4688
-
4689
4883
  </xsl:template><xsl:template name="getName">
4690
4884
  <xsl:choose>
4691
4885
  <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
@@ -4749,9 +4943,26 @@
4749
4943
  <xsl:copy-of select="."/>
4750
4944
  </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
4751
4945
  <xsl:text> </xsl:text>
4946
+ </xsl:template><xsl:template match="*[local-name() = 'name']" mode="contents_item">
4947
+ <xsl:param name="mode">bookmarks</xsl:param>
4948
+ <xsl:apply-templates mode="contents_item">
4949
+ <xsl:with-param name="mode" select="$mode"/>
4950
+ </xsl:apply-templates>
4951
+ </xsl:template><xsl:template match="*[local-name() = 'add']" mode="contents_item">
4952
+ <xsl:param name="mode">bookmarks</xsl:param>
4953
+ <xsl:choose>
4954
+ <xsl:when test="starts-with(text(), $ace_tag)">
4955
+ <xsl:if test="$mode = 'contents'">
4956
+ <xsl:copy>
4957
+ <xsl:apply-templates mode="contents_item"/>
4958
+ </xsl:copy>
4959
+ </xsl:if>
4960
+ </xsl:when>
4961
+ <xsl:otherwise><xsl:apply-templates mode="contents_item"/></xsl:otherwise>
4962
+ </xsl:choose>
4752
4963
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
4753
4964
 
4754
- <fo:block-container margin-left="0mm">
4965
+ <fo:block-container xsl:use-attribute-sets="sourcecode-container-style">
4755
4966
  <xsl:copy-of select="@id"/>
4756
4967
 
4757
4968
  <xsl:if test="parent::*[local-name() = 'note']">
@@ -4788,6 +4999,7 @@
4788
4999
 
4789
5000
  10
4790
5001
  </xsl:variable>
5002
+
4791
5003
  <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
4792
5004
  <xsl:if test="$font-size != ''">
4793
5005
  <xsl:attribute name="font-size">
@@ -4804,11 +5016,11 @@
4804
5016
 
4805
5017
 
4806
5018
 
4807
- <xsl:apply-templates/>
5019
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4808
5020
  </fo:block>
4809
5021
 
4810
5022
 
4811
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
5023
+ <xsl:apply-templates select="*[local-name()='name']"/> <!-- show sourcecode's name AFTER content -->
4812
5024
 
4813
5025
 
4814
5026
 
@@ -4822,7 +5034,7 @@
4822
5034
  <xsl:call-template name="add-zero-spaces-java">
4823
5035
  <xsl:with-param name="text" select="$text"/>
4824
5036
  </xsl:call-template>
4825
- </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="presentation">
5037
+ </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']">
4826
5038
  <xsl:if test="normalize-space() != ''">
4827
5039
  <fo:block xsl:use-attribute-sets="sourcecode-name-style">
4828
5040
  <xsl:apply-templates/>
@@ -4830,10 +5042,10 @@
4830
5042
  </xsl:if>
4831
5043
  </xsl:template><xsl:template match="*[local-name() = 'permission']">
4832
5044
  <fo:block id="{@id}" xsl:use-attribute-sets="permission-style">
4833
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4834
- <xsl:apply-templates/>
5045
+ <xsl:apply-templates select="*[local-name()='name']"/>
5046
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4835
5047
  </fo:block>
4836
- </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']" mode="presentation">
5048
+ </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']">
4837
5049
  <xsl:if test="normalize-space() != ''">
4838
5050
  <fo:block xsl:use-attribute-sets="permission-name-style">
4839
5051
  <xsl:apply-templates/>
@@ -4846,13 +5058,13 @@
4846
5058
  </fo:block>
4847
5059
  </xsl:template><xsl:template match="*[local-name() = 'requirement']">
4848
5060
  <fo:block id="{@id}" xsl:use-attribute-sets="requirement-style">
4849
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4850
- <xsl:apply-templates select="*[local-name()='label']" mode="presentation"/>
4851
- <xsl:apply-templates select="@obligation" mode="presentation"/>
4852
- <xsl:apply-templates select="*[local-name()='subject']" mode="presentation"/>
4853
- <xsl:apply-templates/>
5061
+ <xsl:apply-templates select="*[local-name()='name']"/>
5062
+ <xsl:apply-templates select="*[local-name()='label']"/>
5063
+ <xsl:apply-templates select="@obligation"/>
5064
+ <xsl:apply-templates select="*[local-name()='subject']"/>
5065
+ <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'label') and not(local-name() = 'subject')]"/>
4854
5066
  </fo:block>
4855
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']" mode="presentation">
5067
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']">
4856
5068
  <xsl:if test="normalize-space() != ''">
4857
5069
  <fo:block xsl:use-attribute-sets="requirement-name-style">
4858
5070
 
@@ -4860,20 +5072,24 @@
4860
5072
 
4861
5073
  </fo:block>
4862
5074
  </xsl:if>
4863
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']" mode="presentation">
5075
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']">
4864
5076
  <fo:block xsl:use-attribute-sets="requirement-label-style">
4865
5077
  <xsl:apply-templates/>
4866
5078
  </fo:block>
4867
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/@obligation" mode="presentation">
5079
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/@obligation">
4868
5080
  <fo:block>
4869
5081
  <fo:inline padding-right="3mm">Obligation</fo:inline><xsl:value-of select="."/>
4870
5082
  </fo:block>
5083
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" priority="2">
5084
+ <fo:block xsl:use-attribute-sets="subject-style">
5085
+ <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
5086
+ </fo:block>
4871
5087
  </xsl:template><xsl:template match="*[local-name() = 'recommendation']">
4872
5088
  <fo:block id="{@id}" xsl:use-attribute-sets="recommendation-style">
4873
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4874
- <xsl:apply-templates/>
5089
+ <xsl:apply-templates select="*[local-name()='name']"/>
5090
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4875
5091
  </fo:block>
4876
- </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']" mode="presentation">
5092
+ </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']">
4877
5093
  <xsl:if test="normalize-space() != ''">
4878
5094
  <fo:block xsl:use-attribute-sets="recommendation-name-style">
4879
5095
  <xsl:apply-templates/>
@@ -4884,10 +5100,6 @@
4884
5100
  <fo:block xsl:use-attribute-sets="recommendation-label-style">
4885
5101
  <xsl:apply-templates/>
4886
5102
  </fo:block>
4887
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" priority="2"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" mode="presentation">
4888
- <fo:block xsl:use-attribute-sets="subject-style">
4889
- <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
4890
- </fo:block>
4891
5103
  </xsl:template><xsl:template match="*[local-name() = 'subject']">
4892
5104
  <fo:block xsl:use-attribute-sets="subject-style">
4893
5105
  <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
@@ -4931,8 +5143,6 @@
4931
5143
  </xsl:variable>
4932
5144
  <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
4933
5145
  <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
4934
- <!-- <fo:table-column column-width="35mm"/>
4935
- <fo:table-column column-width="115mm"/> -->
4936
5146
  <fo:table-column column-width="30%"/>
4937
5147
  <fo:table-column column-width="70%"/>
4938
5148
  </xsl:if>
@@ -4942,7 +5152,7 @@
4942
5152
  <xsl:if test=".//*[local-name() = 'fn']">
4943
5153
  <xsl:for-each select="*[local-name() = 'tbody']">
4944
5154
  <fo:block font-size="90%" border-bottom="1pt solid black">
4945
- <xsl:call-template name="fn_display"/>
5155
+ <xsl:call-template name="table_fn_display"/>
4946
5156
  </fo:block>
4947
5157
  </xsl:for-each>
4948
5158
  </xsl:if>
@@ -4959,7 +5169,6 @@
4959
5169
  </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
4960
5170
  <fo:table-row height="7mm" border-bottom="0.5pt solid grey">
4961
5171
  <xsl:if test="parent::*[local-name()='thead']"> <!-- and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']) -->
4962
- <!-- <xsl:attribute name="border">1pt solid black</xsl:attribute> -->
4963
5172
  <xsl:attribute name="background-color">rgb(33, 55, 92)</xsl:attribute>
4964
5173
  </xsl:if>
4965
5174
  <xsl:if test="starts-with(*[local-name()='td'][1], 'Requirement ')">
@@ -4971,35 +5180,12 @@
4971
5180
  <xsl:apply-templates mode="requirement"/>
4972
5181
  </fo:table-row>
4973
5182
  </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
4974
- <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
4975
- <xsl:attribute name="text-align">
4976
- <xsl:choose>
4977
- <xsl:when test="@align">
4978
- <xsl:value-of select="@align"/>
4979
- </xsl:when>
4980
- <xsl:otherwise>left</xsl:otherwise>
4981
- </xsl:choose>
4982
- </xsl:attribute>
4983
- <xsl:if test="@colspan">
4984
- <xsl:attribute name="number-columns-spanned">
4985
- <xsl:value-of select="@colspan"/>
4986
- </xsl:attribute>
4987
- </xsl:if>
4988
- <xsl:if test="@rowspan">
4989
- <xsl:attribute name="number-rows-spanned">
4990
- <xsl:value-of select="@rowspan"/>
4991
- </xsl:attribute>
4992
- </xsl:if>
4993
- <xsl:call-template name="display-align"/>
5183
+ <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
5184
+ <xsl:call-template name="setTextAlignment">
5185
+ <xsl:with-param name="default">left</xsl:with-param>
5186
+ </xsl:call-template>
4994
5187
 
4995
- <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
4996
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
4997
- <xsl:attribute name="background-color">rgb(165, 165, 165)</xsl:attribute>
4998
- </xsl:if>
4999
- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommendtest'">
5000
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
5001
- <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
5002
- </xsl:if> -->
5188
+ <xsl:call-template name="setTableCellAttributes"/>
5003
5189
 
5004
5190
  <fo:block>
5005
5191
  <xsl:apply-templates/>
@@ -5011,37 +5197,15 @@
5011
5197
  <xsl:attribute name="padding">0mm</xsl:attribute>
5012
5198
  <xsl:attribute name="padding-left">0mm</xsl:attribute>
5013
5199
  </xsl:if>
5014
- <xsl:attribute name="text-align">
5015
- <xsl:choose>
5016
- <xsl:when test="@align">
5017
- <xsl:value-of select="@align"/>
5018
- </xsl:when>
5019
- <xsl:otherwise>left</xsl:otherwise>
5020
- </xsl:choose>
5021
- </xsl:attribute>
5200
+ <xsl:call-template name="setTextAlignment">
5201
+ <xsl:with-param name="default">left</xsl:with-param>
5202
+ </xsl:call-template>
5203
+
5022
5204
  <xsl:if test="following-sibling::*[local-name()='td'] and not(preceding-sibling::*[local-name()='td'])">
5023
5205
  <xsl:attribute name="font-weight">bold</xsl:attribute>
5024
5206
  </xsl:if>
5025
- <xsl:if test="@colspan">
5026
- <xsl:attribute name="number-columns-spanned">
5027
- <xsl:value-of select="@colspan"/>
5028
- </xsl:attribute>
5029
- </xsl:if>
5030
- <xsl:if test="@rowspan">
5031
- <xsl:attribute name="number-rows-spanned">
5032
- <xsl:value-of select="@rowspan"/>
5033
- </xsl:attribute>
5034
- </xsl:if>
5035
- <xsl:call-template name="display-align"/>
5036
5207
 
5037
- <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
5038
- <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
5039
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
5040
- <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])">
5041
- <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
5042
- </xsl:if>
5043
- </xsl:if> -->
5044
- <!-- 2nd line and below -->
5208
+ <xsl:call-template name="setTableCellAttributes"/>
5045
5209
 
5046
5210
  <fo:block>
5047
5211
  <xsl:apply-templates/>
@@ -5053,15 +5217,15 @@
5053
5217
  <xsl:apply-templates/>
5054
5218
  </fo:block>
5055
5219
  </xsl:template><xsl:template match="*[local-name() = 'p2'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
5056
- <fo:block> <!-- margin-bottom="10pt" -->
5220
+ <fo:block>
5057
5221
  <xsl:apply-templates/>
5058
5222
  </fo:block>
5059
5223
  </xsl:template><xsl:template match="*[local-name() = 'termexample']">
5060
5224
  <fo:block id="{@id}" xsl:use-attribute-sets="termexample-style">
5061
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
5062
- <xsl:apply-templates/>
5225
+ <xsl:apply-templates select="*[local-name()='name']"/>
5226
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
5063
5227
  </fo:block>
5064
- </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']" mode="presentation">
5228
+ </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']">
5065
5229
  <xsl:if test="normalize-space() != ''">
5066
5230
  <fo:inline xsl:use-attribute-sets="termexample-name-style">
5067
5231
  <xsl:apply-templates/>
@@ -5085,42 +5249,46 @@
5085
5249
  <fo:block id="{@id}" xsl:use-attribute-sets="example-style">
5086
5250
 
5087
5251
 
5088
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
5089
-
5090
- <xsl:variable name="element">
5091
- block
5092
-
5093
- <xsl:if test=".//*[local-name() = 'table']">block</xsl:if>
5252
+ <xsl:variable name="fo_element">
5253
+ <xsl:if test=".//*[local-name() = 'table'] or .//*[local-name() = 'dl']">block</xsl:if>
5254
+ block
5094
5255
  </xsl:variable>
5095
5256
 
5257
+ <!-- display 'EXAMPLE' -->
5258
+ <xsl:apply-templates select="*[local-name()='name']">
5259
+ <xsl:with-param name="fo_element" select="$fo_element"/>
5260
+ </xsl:apply-templates>
5261
+
5096
5262
  <xsl:choose>
5097
- <xsl:when test="contains(normalize-space($element), 'block')">
5098
- <fo:block xsl:use-attribute-sets="example-body-style">
5099
- <xsl:apply-templates/>
5100
- </fo:block>
5263
+ <xsl:when test="contains(normalize-space($fo_element), 'block')">
5264
+ <fo:block-container xsl:use-attribute-sets="example-body-style">
5265
+ <fo:block-container margin-left="0mm" margin-right="0mm">
5266
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
5267
+ <xsl:with-param name="fo_element" select="$fo_element"/>
5268
+ </xsl:apply-templates>
5269
+ </fo:block-container>
5270
+ </fo:block-container>
5101
5271
  </xsl:when>
5102
5272
  <xsl:otherwise>
5103
5273
  <fo:inline>
5104
- <xsl:apply-templates/>
5274
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
5275
+ <xsl:with-param name="fo_element" select="$fo_element"/>
5276
+ </xsl:apply-templates>
5105
5277
  </fo:inline>
5106
5278
  </xsl:otherwise>
5107
5279
  </xsl:choose>
5108
5280
 
5109
5281
  </fo:block>
5110
- </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']" mode="presentation">
5111
-
5112
- <xsl:variable name="element">
5113
- block
5114
-
5115
- <xsl:if test="following-sibling::*[1][local-name() = 'table']">block</xsl:if>
5116
- </xsl:variable>
5282
+ </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']">
5283
+ <xsl:param name="fo_element">block</xsl:param>
5284
+
5117
5285
  <xsl:choose>
5118
5286
  <xsl:when test="ancestor::*[local-name() = 'appendix']">
5119
5287
  <fo:inline>
5120
5288
  <xsl:apply-templates/>
5121
5289
  </fo:inline>
5122
5290
  </xsl:when>
5123
- <xsl:when test="contains(normalize-space($element), 'block')">
5291
+ <xsl:when test="contains(normalize-space($fo_element), 'block')">
5124
5292
  <fo:block xsl:use-attribute-sets="example-name-style">
5125
5293
  <xsl:apply-templates/>
5126
5294
  </fo:block>
@@ -5133,17 +5301,17 @@
5133
5301
  </xsl:choose>
5134
5302
 
5135
5303
  </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
5304
+ <xsl:param name="fo_element">block</xsl:param>
5305
+
5136
5306
  <xsl:variable name="num"><xsl:number/></xsl:variable>
5137
5307
  <xsl:variable name="element">
5138
- block
5139
-
5140
5308
 
5309
+ <xsl:value-of select="$fo_element"/>
5141
5310
  </xsl:variable>
5142
5311
  <xsl:choose>
5143
- <xsl:when test="normalize-space($element) = 'block'">
5312
+ <xsl:when test="starts-with(normalize-space($element), 'block')">
5144
5313
  <fo:block xsl:use-attribute-sets="example-p-style">
5145
5314
 
5146
- <xsl:variable name="num"><xsl:number/></xsl:variable>
5147
5315
  <xsl:if test="$num = 1">
5148
5316
  <xsl:attribute name="margin-left">5mm</xsl:attribute>
5149
5317
  </xsl:if>
@@ -5160,6 +5328,8 @@
5160
5328
  </xsl:template><xsl:template match="*[local-name() = 'termsource']" name="termsource">
5161
5329
  <fo:block xsl:use-attribute-sets="termsource-style">
5162
5330
 
5331
+
5332
+
5163
5333
  <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
5164
5334
  <xsl:variable name="termsource_text">
5165
5335
  <xsl:apply-templates/>
@@ -5197,9 +5367,7 @@
5197
5367
  <xsl:value-of select="."/>
5198
5368
  </xsl:if>
5199
5369
  </xsl:template><xsl:template match="*[local-name() = 'termsource']/*[local-name() = 'strong'][1][following-sibling::*[1][local-name() = 'origin']]/text()">
5200
- <fo:inline>
5201
-
5202
-
5370
+ <fo:inline xsl:use-attribute-sets="termsource-text-style">
5203
5371
  <xsl:value-of select="."/>
5204
5372
  </fo:inline>
5205
5373
  </xsl:template><xsl:template match="*[local-name() = 'origin']">
@@ -5213,12 +5381,9 @@
5213
5381
  </fo:basic-link>
5214
5382
  </xsl:template><xsl:template match="*[local-name() = 'modification']">
5215
5383
  <xsl:variable name="title-modified">
5216
-
5217
-
5218
- <xsl:call-template name="getTitle">
5219
- <xsl:with-param name="name" select="'title-modified'"/>
5220
- </xsl:call-template>
5221
-
5384
+ <xsl:call-template name="getLocalizedString">
5385
+ <xsl:with-param name="key">modified</xsl:with-param>
5386
+ </xsl:call-template>
5222
5387
  </xsl:variable>
5223
5388
 
5224
5389
  <xsl:variable name="text"><xsl:apply-templates/></xsl:variable>
@@ -5245,7 +5410,6 @@
5245
5410
  <fo:block-container margin-left="0mm">
5246
5411
 
5247
5412
  <fo:block xsl:use-attribute-sets="quote-style">
5248
- <!-- <xsl:apply-templates select=".//*[local-name() = 'p']"/> -->
5249
5413
 
5250
5414
  <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
5251
5415
  </fo:block>
@@ -5288,15 +5452,13 @@
5288
5452
  </xsl:variable>
5289
5453
 
5290
5454
  <xsl:choose>
5291
- <xsl:when test="normalize-space($bibitemid) != ''">
5455
+ <xsl:when test="normalize-space($bibitemid) != ''"> <!-- if in the bibliography there is the item with @bibitemid (and not hidden), then create link -->
5292
5456
  <fo:inline xsl:use-attribute-sets="eref-style">
5293
5457
  <xsl:if test="@type = 'footnote'">
5294
-
5295
- <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
5296
- <xsl:attribute name="font-size">80%</xsl:attribute>
5297
- <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
5298
- <xsl:attribute name="vertical-align">super</xsl:attribute>
5299
-
5458
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
5459
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
5460
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
5461
+ <xsl:attribute name="font-size">80%</xsl:attribute>
5300
5462
 
5301
5463
  </xsl:if>
5302
5464
 
@@ -5313,7 +5475,6 @@
5313
5475
 
5314
5476
 
5315
5477
 
5316
-
5317
5478
  </xsl:if>
5318
5479
 
5319
5480
 
@@ -5371,8 +5532,6 @@
5371
5532
  </xsl:choose>
5372
5533
  </xsl:variable>
5373
5534
 
5374
- <!-- <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/> -->
5375
-
5376
5535
  <xsl:choose>
5377
5536
  <xsl:when test="$lang = 'zh'">
5378
5537
  <fo:inline><xsl:value-of select="$tab_zh"/></fo:inline>
@@ -5407,12 +5566,9 @@
5407
5566
  </fo:block>
5408
5567
  </xsl:template><xsl:template match="*[local-name() = 'deprecates']">
5409
5568
  <xsl:variable name="title-deprecated">
5410
-
5411
-
5412
- <xsl:call-template name="getTitle">
5413
- <xsl:with-param name="name" select="'title-deprecated'"/>
5414
- </xsl:call-template>
5415
-
5569
+ <xsl:call-template name="getLocalizedString">
5570
+ <xsl:with-param name="key">deprecated</xsl:with-param>
5571
+ </xsl:call-template>
5416
5572
  </xsl:variable>
5417
5573
  <fo:block xsl:use-attribute-sets="deprecates-style">
5418
5574
  <xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
@@ -5421,6 +5577,8 @@
5421
5577
  <xsl:if test="*[local-name() = 'strong']">
5422
5578
  <xsl:attribute name="font-weight">normal</xsl:attribute>
5423
5579
  </xsl:if>
5580
+ </xsl:template><xsl:template match="*[local-name() = 'preferred']/text()[contains(., ';')] | *[local-name() = 'preferred']/*[local-name() = 'strong']/text()[contains(., ';')]">
5581
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.), ';', $linebreak)"/>
5424
5582
  </xsl:template><xsl:template match="*[local-name() = 'definition']">
5425
5583
  <fo:block xsl:use-attribute-sets="definition-style">
5426
5584
  <xsl:apply-templates/>
@@ -5429,7 +5587,6 @@
5429
5587
  <xsl:apply-templates/>
5430
5588
  </xsl:template><xsl:template match="*[local-name() = 'definition'][preceding-sibling::*[local-name() = 'domain']]/*[local-name() = 'p'][1]">
5431
5589
  <fo:inline> <xsl:apply-templates/></fo:inline>
5432
- <!-- <fo:block>&#xA0;</fo:block> -->
5433
5590
  <fo:block/>
5434
5591
  </xsl:template><xsl:template match="/*/*[local-name() = 'sections']/*" priority="2">
5435
5592
 
@@ -5472,11 +5629,6 @@
5472
5629
  <xsl:apply-templates/>
5473
5630
  </fo:block>
5474
5631
  </xsl:template><xsl:template match="*[local-name() = 'definitions']">
5475
- <fo:block id="{@id}">
5476
- <xsl:apply-templates/>
5477
- </fo:block>
5478
- </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" priority="3"/><xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3"/><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
5479
-
5480
5632
  <fo:block id="{@id}">
5481
5633
  <xsl:apply-templates/>
5482
5634
  </fo:block>
@@ -5498,6 +5650,51 @@
5498
5650
  </xsl:template><xsl:template match="*[local-name() = 'name']/text()">
5499
5651
  <!-- 0xA0 to space replacement -->
5500
5652
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
5653
+ </xsl:template><xsl:variable name="ul_labels_">
5654
+
5655
+
5656
+
5657
+
5658
+
5659
+
5660
+
5661
+
5662
+
5663
+
5664
+
5665
+
5666
+
5667
+
5668
+
5669
+
5670
+
5671
+ <label>•</label>
5672
+
5673
+ </xsl:variable><xsl:variable name="ul_labels" select="xalan:nodeset($ul_labels_)"/><xsl:template name="setULLabel">
5674
+ <xsl:variable name="list_level_" select="count(ancestor::*[local-name() = 'ul']) + count(ancestor::*[local-name() = 'ol'])"/>
5675
+ <xsl:variable name="list_level">
5676
+ <xsl:choose>
5677
+ <xsl:when test="$list_level_ &lt;= 3"><xsl:value-of select="$list_level_"/></xsl:when>
5678
+ <xsl:otherwise><xsl:value-of select="$list_level_ mod 3"/></xsl:otherwise>
5679
+ </xsl:choose>
5680
+ </xsl:variable>
5681
+ <xsl:choose>
5682
+ <xsl:when test="$ul_labels/label[not(@level)]"> <!-- one label for all levels -->
5683
+ <xsl:apply-templates select="$ul_labels/label[not(@level)]" mode="ul_labels"/>
5684
+ </xsl:when>
5685
+ <xsl:when test="$list_level mod 3 = 0">
5686
+ <xsl:apply-templates select="$ul_labels/label[@level = 3]" mode="ul_labels"/>
5687
+ </xsl:when>
5688
+ <xsl:when test="$list_level mod 2 = 0">
5689
+ <xsl:apply-templates select="$ul_labels/label[@level = 2]" mode="ul_labels"/>
5690
+ </xsl:when>
5691
+ <xsl:otherwise>
5692
+ <xsl:apply-templates select="$ul_labels/label[@level = 1]" mode="ul_labels"/>
5693
+ </xsl:otherwise>
5694
+ </xsl:choose>
5695
+ </xsl:template><xsl:template match="label" mode="ul_labels">
5696
+ <xsl:copy-of select="@*[not(local-name() = 'level')]"/>
5697
+ <xsl:value-of select="."/>
5501
5698
  </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
5502
5699
  <xsl:choose>
5503
5700
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
@@ -5704,20 +5901,70 @@
5704
5901
  <fo:table-cell border="1pt solid black" padding-left="1mm" padding-top="0.5mm">
5705
5902
  <fo:block><xsl:apply-templates/></fo:block>
5706
5903
  </fo:table-cell>
5707
- </xsl:template><xsl:template name="processBibitem">
5904
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" priority="3"/><xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3"/><xsl:template match="*[local-name() = 'bibitem'][starts-with(@id, 'hidden_bibitem_')]" priority="3"/><xsl:template match="*[local-name() = 'references'][@normative='true']" priority="2">
5905
+
5906
+
5907
+
5908
+ <fo:block id="{@id}">
5909
+ <xsl:apply-templates/>
5910
+ </fo:block>
5911
+ </xsl:template><xsl:template match="*[local-name() = 'references']">
5912
+ <xsl:if test="not(ancestor::*[local-name() = 'annex'])">
5913
+
5914
+ </xsl:if>
5915
+
5916
+ <!-- <xsl:if test="ancestor::*[local-name() = 'annex']">
5917
+ <xsl:if test="$namespace = 'csa' or $namespace = 'csd' or $namespace = 'gb' or $namespace = 'iec' or $namespace = 'iso' or $namespace = 'itu'">
5918
+ <fo:block break-after="page"/>
5919
+ </xsl:if>
5920
+ </xsl:if> -->
5921
+
5922
+ <fo:block id="{@id}" xsl:use-attribute-sets="references-non-normative-style">
5923
+ <xsl:apply-templates/>
5924
+ </fo:block>
5925
+
5708
5926
 
5709
5927
 
5710
5928
 
5711
-
5929
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']">
5930
+ <xsl:call-template name="bibitem"/>
5931
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@normative='true']/*[local-name() = 'bibitem']" name="bibitem" priority="2">
5712
5932
 
5933
+ <fo:block id="{@id}" xsl:use-attribute-sets="bibitem-normative-style">
5934
+ <xsl:call-template name="processBibitem"/>
5935
+ </fo:block>
5936
+
5937
+
5938
+ </xsl:template><xsl:template match="*[local-name() = 'references'][not(@normative='true')]/*[local-name() = 'bibitem']" priority="2">
5713
5939
 
5714
-
5715
5940
 
5941
+ <fo:block id="{@id}" xsl:use-attribute-sets="bibitem-non-normative-style">
5942
+ <xsl:call-template name="processBibitem"/>
5943
+ </fo:block>
5944
+
5716
5945
 
5946
+ </xsl:template><xsl:template name="processBibitem">
5717
5947
 
5718
5948
 
5949
+ <fo:inline padding-right="5mm">[<xsl:value-of select="un:docidentifier"/>]</fo:inline><xsl:value-of select="un:docidentifier"/>
5950
+ <xsl:if test="un:title">
5951
+ <fo:inline font-style="italic">
5952
+ <xsl:text>, </xsl:text>
5953
+ <xsl:choose>
5954
+ <xsl:when test="un:title[@type = 'main' and @language = 'en']">
5955
+ <xsl:apply-templates select="un:title[@type = 'main' and @language = 'en']"/>
5956
+ </xsl:when>
5957
+ <xsl:otherwise>
5958
+ <xsl:apply-templates select="un:title"/>
5959
+ </xsl:otherwise>
5960
+ </xsl:choose>
5961
+ </fo:inline>
5962
+ </xsl:if>
5963
+ <xsl:apply-templates select="un:formattedref"/>
5964
+
5965
+
5719
5966
  </xsl:template><xsl:template name="processBibitemDocId">
5720
- <xsl:variable name="_doc_ident" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]"/>
5967
+ <xsl:variable name="_doc_ident" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'metanorma-ordinal' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]"/>
5721
5968
  <xsl:choose>
5722
5969
  <xsl:when test="normalize-space($_doc_ident) != ''">
5723
5970
  <!-- <xsl:variable name="type" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]/@type"/>
@@ -5731,7 +5978,7 @@
5731
5978
  <xsl:if test="$type != ''">
5732
5979
  <xsl:value-of select="$type"/><xsl:text> </xsl:text>
5733
5980
  </xsl:if> -->
5734
- <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]"/>
5981
+ <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma') and not(@type = 'metanorma-ordinal')]"/>
5735
5982
  </xsl:otherwise>
5736
5983
  </xsl:choose>
5737
5984
  </xsl:template><xsl:template name="processPersonalAuthor">
@@ -5772,6 +6019,50 @@
5772
6019
  <xsl:value-of select="substring(.,1,1)"/>
5773
6020
  </xsl:template><xsl:template match="*[local-name() = 'title']" mode="title">
5774
6021
  <fo:inline><xsl:apply-templates/></fo:inline>
6022
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'title']" priority="2">
6023
+ <!-- <fo:inline><xsl:apply-templates /></fo:inline> -->
6024
+ <fo:inline font-style="italic"> <!-- BIPM BSI CSD CSA GB IEC IHO ISO ITU JCGM -->
6025
+ <xsl:apply-templates/>
6026
+ </fo:inline>
6027
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'note']" priority="2">
6028
+ <fo:footnote>
6029
+ <xsl:variable name="number">
6030
+
6031
+ <xsl:number level="any" count="*[local-name() = 'bibitem']/*[local-name() = 'note']"/>
6032
+
6033
+ </xsl:variable>
6034
+ <fo:inline xsl:use-attribute-sets="bibitem-note-fn-style">
6035
+ <fo:basic-link internal-destination="{generate-id()}" fox:alt-text="footnote {$number}">
6036
+ <xsl:value-of select="$number"/>
6037
+
6038
+ </fo:basic-link>
6039
+ </fo:inline>
6040
+ <fo:footnote-body>
6041
+ <fo:block xsl:use-attribute-sets="bibitem-note-fn-body-style">
6042
+ <fo:inline id="{generate-id()}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
6043
+ <xsl:value-of select="$number"/>
6044
+
6045
+ </fo:inline>
6046
+ <xsl:apply-templates/>
6047
+ </fo:block>
6048
+ </fo:footnote-body>
6049
+ </fo:footnote>
6050
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'edition']"> <!-- for iho -->
6051
+ <xsl:text> edition </xsl:text>
6052
+ <xsl:value-of select="."/>
6053
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'uri']"> <!-- for iho -->
6054
+ <xsl:text> (</xsl:text>
6055
+ <fo:inline xsl:use-attribute-sets="link-style">
6056
+ <fo:basic-link external-destination="." fox:alt-text=".">
6057
+ <xsl:value-of select="."/>
6058
+ </fo:basic-link>
6059
+ </fo:inline>
6060
+ <xsl:text>)</xsl:text>
6061
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'docidentifier']"/><xsl:template match="*[local-name() = 'formattedref']">
6062
+
6063
+ <xsl:text>, </xsl:text>
6064
+
6065
+ <xsl:apply-templates/>
5775
6066
  </xsl:template><xsl:template match="*[local-name() = 'form']">
5776
6067
  <fo:block>
5777
6068
  <xsl:apply-templates/>
@@ -5837,26 +6128,13 @@
5837
6128
  <fo:block> </fo:block>
5838
6129
  </fo:block-container>
5839
6130
  </xsl:template><xsl:variable name="toc_level">
6131
+ <!-- https://www.metanorma.org/author/ref/document-attributes/ -->
6132
+ <xsl:variable name="htmltoclevels" select="normalize-space(//*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'HTML TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- :htmltoclevels Number of table of contents levels to render in HTML/PDF output; used to override :toclevels:-->
6133
+ <xsl:variable name="toclevels" select="normalize-space(//*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- Number of table of contents levels to render -->
5840
6134
  <xsl:choose>
5841
- <xsl:when test="1 = 2"/> <!-- to do https://github.com/metanorma/mn-native-pdf/issues/337: if there is value in xml -->
6135
+ <xsl:when test="$htmltoclevels != ''"><xsl:value-of select="number($htmltoclevels)"/></xsl:when> <!-- if there is value in xml -->
6136
+ <xsl:when test="$toclevels != ''"><xsl:value-of select="number($toclevels)"/></xsl:when> <!-- if there is value in xml -->
5842
6137
  <xsl:otherwise><!-- default value -->
5843
-
5844
-
5845
-
5846
-
5847
-
5848
-
5849
-
5850
-
5851
-
5852
-
5853
-
5854
-
5855
-
5856
-
5857
-
5858
-
5859
-
5860
6138
  3
5861
6139
  </xsl:otherwise>
5862
6140
  </xsl:choose>
@@ -5940,7 +6218,7 @@
5940
6218
  </td>
5941
6219
  </xsl:for-each>
5942
6220
  <td>333</td> <!-- page number, just for fill -->
5943
- </xsl:template><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']"/><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']" mode="subtitle">
6221
+ </xsl:template><xsl:template match="*[local-name() = 'variant-title']"/><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']" mode="subtitle">
5944
6222
  <fo:inline padding-right="5mm"> </fo:inline>
5945
6223
  <fo:inline><xsl:apply-templates/></fo:inline>
5946
6224
  </xsl:template><xsl:template match="*[local-name() = 'blacksquare']" name="blacksquare">
@@ -5951,6 +6229,71 @@
5951
6229
  </svg>
5952
6230
  </fo:instream-foreign-object>
5953
6231
  </fo:inline>
6232
+ </xsl:template><xsl:template match="@language">
6233
+ <xsl:copy-of select="."/>
6234
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title' or @type = 'section-title']" priority="4">
6235
+ <xsl:call-template name="title"/>
6236
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']">
6237
+
6238
+
6239
+ <fo:block break-after="page"/>
6240
+
6241
+
6242
+
6243
+
6244
+ <!-- text in the box -->
6245
+ <fo:block-container id="{@id}" xsl:use-attribute-sets="admonition-style">
6246
+
6247
+
6248
+ <fo:block xsl:use-attribute-sets="admonition-name-style">
6249
+ <xsl:call-template name="displayAdmonitionName"/>
6250
+ </fo:block>
6251
+
6252
+
6253
+
6254
+
6255
+ <fo:block-container xsl:use-attribute-sets="admonition-container-style">
6256
+
6257
+
6258
+ <fo:block-container margin-left="0mm" margin-right="0mm">
6259
+ <fo:block>
6260
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
6261
+ </fo:block>
6262
+ </fo:block-container>
6263
+
6264
+ </fo:block-container>
6265
+
6266
+ </fo:block-container>
6267
+
6268
+ </xsl:template><xsl:template name="displayAdmonitionName">
6269
+
6270
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
6271
+ <xsl:if test="not(*[local-name() = 'name'])">
6272
+ <xsl:apply-templates select="@type"/>
6273
+ </xsl:if>
6274
+
6275
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']/*[local-name() = 'name']">
6276
+ <xsl:apply-templates/>
6277
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']/@type">
6278
+ <xsl:variable name="admonition_type_">
6279
+ <xsl:call-template name="getLocalizedString">
6280
+ <xsl:with-param name="key">admonition.<xsl:value-of select="."/></xsl:with-param>
6281
+ </xsl:call-template>
6282
+ </xsl:variable>
6283
+ <xsl:variable name="admonition_type" select="normalize-space(java:toUpperCase(java:java.lang.String.new($admonition_type_)))"/>
6284
+ <xsl:value-of select="$admonition_type"/>
6285
+ <xsl:if test="$admonition_type = ''">
6286
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(.))"/>
6287
+ </xsl:if>
6288
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']/*[local-name() = 'p']">
6289
+
6290
+ <fo:block xsl:use-attribute-sets="admonition-p-style">
6291
+
6292
+
6293
+
6294
+ <xsl:apply-templates/>
6295
+ </fo:block>
6296
+
5954
6297
  </xsl:template><xsl:template name="convertDate">
5955
6298
  <xsl:param name="date"/>
5956
6299
  <xsl:param name="format" select="'short'"/>
@@ -5958,83 +6301,80 @@
5958
6301
  <xsl:variable name="month" select="substring($date, 6, 2)"/>
5959
6302
  <xsl:variable name="day" select="substring($date, 9, 2)"/>
5960
6303
  <xsl:variable name="monthStr">
5961
- <xsl:choose>
5962
- <xsl:when test="$month = '01'">January</xsl:when>
5963
- <xsl:when test="$month = '02'">February</xsl:when>
5964
- <xsl:when test="$month = '03'">March</xsl:when>
5965
- <xsl:when test="$month = '04'">April</xsl:when>
5966
- <xsl:when test="$month = '05'">May</xsl:when>
5967
- <xsl:when test="$month = '06'">June</xsl:when>
5968
- <xsl:when test="$month = '07'">July</xsl:when>
5969
- <xsl:when test="$month = '08'">August</xsl:when>
5970
- <xsl:when test="$month = '09'">September</xsl:when>
5971
- <xsl:when test="$month = '10'">October</xsl:when>
5972
- <xsl:when test="$month = '11'">November</xsl:when>
5973
- <xsl:when test="$month = '12'">December</xsl:when>
5974
- </xsl:choose>
6304
+ <xsl:call-template name="getMonthByNum">
6305
+ <xsl:with-param name="num" select="$month"/>
6306
+ <xsl:with-param name="lowercase" select="'true'"/>
6307
+ </xsl:call-template>
6308
+ </xsl:variable>
6309
+ <xsl:variable name="monthStr_localized">
6310
+ <xsl:if test="normalize-space($monthStr) != ''"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_<xsl:value-of select="$monthStr"/></xsl:with-param></xsl:call-template></xsl:if>
5975
6311
  </xsl:variable>
5976
6312
  <xsl:variable name="result">
5977
6313
  <xsl:choose>
5978
- <xsl:when test="$format = 'ddMMyyyy'">
6314
+ <xsl:when test="$format = 'ddMMyyyy'"> <!-- convert date from format 2007-04-01 to 1 April 2007 -->
5979
6315
  <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
5980
6316
  <xsl:text> </xsl:text>
5981
- <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
6317
+ <xsl:value-of select="normalize-space(concat($monthStr_localized, ' ' , $year))"/>
5982
6318
  </xsl:when>
5983
6319
  <xsl:when test="$format = 'ddMM'">
5984
6320
  <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
5985
- <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
6321
+ <xsl:text> </xsl:text><xsl:value-of select="$monthStr_localized"/>
5986
6322
  </xsl:when>
5987
6323
  <xsl:when test="$format = 'short' or $day = ''">
5988
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
6324
+ <xsl:value-of select="normalize-space(concat($monthStr_localized, ' ', $year))"/>
5989
6325
  </xsl:when>
5990
6326
  <xsl:otherwise>
5991
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
6327
+ <xsl:value-of select="normalize-space(concat($monthStr_localized, ' ', $day, ', ' , $year))"/> <!-- January 01, 2022 -->
5992
6328
  </xsl:otherwise>
5993
6329
  </xsl:choose>
5994
6330
  </xsl:variable>
5995
6331
  <xsl:value-of select="$result"/>
5996
- </xsl:template><xsl:template name="convertDateLocalized">
5997
- <xsl:param name="date"/>
5998
- <xsl:param name="format" select="'short'"/>
5999
- <xsl:variable name="year" select="substring($date, 1, 4)"/>
6000
- <xsl:variable name="month" select="substring($date, 6, 2)"/>
6001
- <xsl:variable name="day" select="substring($date, 9, 2)"/>
6002
- <xsl:variable name="monthStr">
6003
- <xsl:choose>
6004
- <xsl:when test="$month = '01'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_january</xsl:with-param></xsl:call-template></xsl:when>
6005
- <xsl:when test="$month = '02'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_february</xsl:with-param></xsl:call-template></xsl:when>
6006
- <xsl:when test="$month = '03'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_march</xsl:with-param></xsl:call-template></xsl:when>
6007
- <xsl:when test="$month = '04'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_april</xsl:with-param></xsl:call-template></xsl:when>
6008
- <xsl:when test="$month = '05'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_may</xsl:with-param></xsl:call-template></xsl:when>
6009
- <xsl:when test="$month = '06'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_june</xsl:with-param></xsl:call-template></xsl:when>
6010
- <xsl:when test="$month = '07'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_july</xsl:with-param></xsl:call-template></xsl:when>
6011
- <xsl:when test="$month = '08'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_august</xsl:with-param></xsl:call-template></xsl:when>
6012
- <xsl:when test="$month = '09'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_september</xsl:with-param></xsl:call-template></xsl:when>
6013
- <xsl:when test="$month = '10'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_october</xsl:with-param></xsl:call-template></xsl:when>
6014
- <xsl:when test="$month = '11'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_november</xsl:with-param></xsl:call-template></xsl:when>
6015
- <xsl:when test="$month = '12'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_december</xsl:with-param></xsl:call-template></xsl:when>
6016
- </xsl:choose>
6017
- </xsl:variable>
6018
- <xsl:variable name="result">
6332
+ </xsl:template><xsl:template name="getMonthByNum">
6333
+ <xsl:param name="num"/>
6334
+ <xsl:param name="lang">en</xsl:param>
6335
+ <xsl:param name="lowercase">false</xsl:param> <!-- return 'january' instead of 'January' -->
6336
+ <xsl:variable name="monthStr_">
6019
6337
  <xsl:choose>
6020
- <xsl:when test="$format = 'ddMMyyyy'">
6021
- <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
6022
- <xsl:text> </xsl:text>
6023
- <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
6024
- </xsl:when>
6025
- <xsl:when test="$format = 'ddMM'">
6026
- <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
6027
- <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
6028
- </xsl:when>
6029
- <xsl:when test="$format = 'short' or $day = ''">
6030
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
6338
+ <xsl:when test="$lang = 'fr'">
6339
+ <xsl:choose>
6340
+ <xsl:when test="$num = '01'">Janvier</xsl:when>
6341
+ <xsl:when test="$num = '02'">Février</xsl:when>
6342
+ <xsl:when test="$num = '03'">Mars</xsl:when>
6343
+ <xsl:when test="$num = '04'">Avril</xsl:when>
6344
+ <xsl:when test="$num = '05'">Mai</xsl:when>
6345
+ <xsl:when test="$num = '06'">Juin</xsl:when>
6346
+ <xsl:when test="$num = '07'">Juillet</xsl:when>
6347
+ <xsl:when test="$num = '08'">Août</xsl:when>
6348
+ <xsl:when test="$num = '09'">Septembre</xsl:when>
6349
+ <xsl:when test="$num = '10'">Octobre</xsl:when>
6350
+ <xsl:when test="$num = '11'">Novembre</xsl:when>
6351
+ <xsl:when test="$num = '12'">Décembre</xsl:when>
6352
+ </xsl:choose>
6031
6353
  </xsl:when>
6032
6354
  <xsl:otherwise>
6033
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
6355
+ <xsl:choose>
6356
+ <xsl:when test="$num = '01'">January</xsl:when>
6357
+ <xsl:when test="$num = '02'">February</xsl:when>
6358
+ <xsl:when test="$num = '03'">March</xsl:when>
6359
+ <xsl:when test="$num = '04'">April</xsl:when>
6360
+ <xsl:when test="$num = '05'">May</xsl:when>
6361
+ <xsl:when test="$num = '06'">June</xsl:when>
6362
+ <xsl:when test="$num = '07'">July</xsl:when>
6363
+ <xsl:when test="$num = '08'">August</xsl:when>
6364
+ <xsl:when test="$num = '09'">September</xsl:when>
6365
+ <xsl:when test="$num = '10'">October</xsl:when>
6366
+ <xsl:when test="$num = '11'">November</xsl:when>
6367
+ <xsl:when test="$num = '12'">December</xsl:when>
6368
+ </xsl:choose>
6034
6369
  </xsl:otherwise>
6035
6370
  </xsl:choose>
6036
6371
  </xsl:variable>
6037
- <xsl:value-of select="$result"/>
6372
+ <xsl:choose>
6373
+ <xsl:when test="normalize-space($lowercase) = 'true'">
6374
+ <xsl:value-of select="java:toLowerCase(java:java.lang.String.new($monthStr_))"/>
6375
+ </xsl:when>
6376
+ <xsl:otherwise><xsl:value-of select="$monthStr_"/></xsl:otherwise>
6377
+ </xsl:choose>
6038
6378
  </xsl:template><xsl:template name="insertKeywords">
6039
6379
  <xsl:param name="sorting" select="'true'"/>
6040
6380
  <xsl:param name="charAtEnd" select="'.'"/>
@@ -6083,13 +6423,8 @@
6083
6423
  <xsl:variable name="title">
6084
6424
  <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
6085
6425
 
6086
- <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'main']"/>
6087
-
6088
-
6089
-
6090
-
6091
-
6092
-
6426
+ <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'main']"/>
6427
+
6093
6428
  </xsl:for-each>
6094
6429
  </xsl:variable>
6095
6430
  <xsl:choose>
@@ -6104,21 +6439,18 @@
6104
6439
  <dc:creator>
6105
6440
  <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
6106
6441
 
6107
- <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
6108
- <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
6109
- <xsl:if test="position() != last()">; </xsl:if>
6110
- </xsl:for-each>
6111
-
6112
-
6113
-
6442
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
6443
+ <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
6444
+ <xsl:if test="position() != last()">; </xsl:if>
6445
+ </xsl:for-each>
6446
+
6114
6447
  </xsl:for-each>
6115
6448
  </dc:creator>
6116
6449
  <dc:description>
6117
6450
  <xsl:variable name="abstract">
6118
6451
 
6119
- <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
6120
-
6121
-
6452
+ <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
6453
+
6122
6454
  </xsl:variable>
6123
6455
  <xsl:value-of select="normalize-space($abstract)"/>
6124
6456
  </dc:description>
@@ -6138,7 +6470,6 @@
6138
6470
  <xsl:value-of select="../@id"/>
6139
6471
  </xsl:when>
6140
6472
  <xsl:otherwise>
6141
- <!-- <xsl:value-of select="concat(local-name(..), '_', text())"/> -->
6142
6473
  <xsl:value-of select="concat(generate-id(..), '_', text())"/>
6143
6474
  </xsl:otherwise>
6144
6475
  </xsl:choose>
@@ -6164,9 +6495,6 @@
6164
6495
  <xsl:when test="ancestor::*[local-name() = 'preface']">
6165
6496
  <xsl:value-of select="$level_total - 2"/>
6166
6497
  </xsl:when>
6167
- <!-- <xsl:when test="parent::*[local-name() = 'sections']">
6168
- <xsl:value-of select="$level_total - 1"/>
6169
- </xsl:when> -->
6170
6498
  <xsl:when test="ancestor::*[local-name() = 'sections']">
6171
6499
  <xsl:value-of select="$level_total - 1"/>
6172
6500
  </xsl:when>
@@ -6308,9 +6636,15 @@
6308
6636
  </xsl:template><xsl:template name="getLocalizedString">
6309
6637
  <xsl:param name="key"/>
6310
6638
  <xsl:param name="formatted">false</xsl:param>
6639
+ <xsl:param name="lang"/>
6311
6640
 
6312
6641
  <xsl:variable name="curr_lang">
6313
- <xsl:call-template name="getLang"/>
6642
+ <xsl:choose>
6643
+ <xsl:when test="$lang != ''"><xsl:value-of select="$lang"/></xsl:when>
6644
+ <xsl:otherwise>
6645
+ <xsl:call-template name="getLang"/>
6646
+ </xsl:otherwise>
6647
+ </xsl:choose>
6314
6648
  </xsl:variable>
6315
6649
 
6316
6650
  <xsl:variable name="data_value">
@@ -6350,7 +6684,6 @@
6350
6684
  <xsl:value-of select="$key_"/>
6351
6685
  </xsl:otherwise>
6352
6686
  </xsl:choose>
6353
-
6354
6687
  </xsl:template><xsl:template name="setTrackChangesStyles">
6355
6688
  <xsl:param name="isAdded"/>
6356
6689
  <xsl:param name="isDeleted"/>
@@ -6373,7 +6706,6 @@
6373
6706
  <xsl:if test="local-name() = 'table'">
6374
6707
  <xsl:attribute name="background-color">rgb(255, 185, 185)</xsl:attribute>
6375
6708
  </xsl:if>
6376
- <!-- <xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute> -->
6377
6709
  <xsl:attribute name="padding">2mm</xsl:attribute>
6378
6710
  </xsl:if>
6379
6711
  </xsl:otherwise>
@@ -6393,15 +6725,18 @@
6393
6725
  </xsl:choose>
6394
6726
  </xsl:template><xsl:template name="setTextAlignment">
6395
6727
  <xsl:param name="default">left</xsl:param>
6728
+ <xsl:variable name="align" select="normalize-space(@align)"/>
6396
6729
  <xsl:attribute name="text-align">
6397
6730
  <xsl:choose>
6398
- <xsl:when test="@align and not(@align = 'indent')"><xsl:value-of select="@align"/></xsl:when>
6731
+ <xsl:when test="$lang = 'ar' and $align = 'left'">start</xsl:when>
6732
+ <xsl:when test="$lang = 'ar' and $align = 'right'">end</xsl:when>
6733
+ <xsl:when test="$align != '' and not($align = 'indent')"><xsl:value-of select="$align"/></xsl:when>
6399
6734
  <xsl:when test="ancestor::*[local-name() = 'td']/@align"><xsl:value-of select="ancestor::*[local-name() = 'td']/@align"/></xsl:when>
6400
6735
  <xsl:when test="ancestor::*[local-name() = 'th']/@align"><xsl:value-of select="ancestor::*[local-name() = 'th']/@align"/></xsl:when>
6401
6736
  <xsl:otherwise><xsl:value-of select="$default"/></xsl:otherwise>
6402
6737
  </xsl:choose>
6403
6738
  </xsl:attribute>
6404
- <xsl:if test="@align = 'indent'">
6739
+ <xsl:if test="$align = 'indent'">
6405
6740
  <xsl:attribute name="margin-left">7mm</xsl:attribute>
6406
6741
  </xsl:if>
6407
6742
  </xsl:template><xsl:template name="number-to-words">
@@ -6500,6 +6835,25 @@
6500
6835
  </xsl:otherwise>
6501
6836
  </xsl:choose>
6502
6837
  </xsl:if>
6838
+ </xsl:template><xsl:template name="number-to-ordinal">
6839
+ <xsl:param name="number"/>
6840
+ <xsl:param name="curr_lang"/>
6841
+ <xsl:choose>
6842
+ <xsl:when test="$curr_lang = 'fr'">
6843
+ <xsl:choose>
6844
+ <xsl:when test="$number = '1'">re</xsl:when>
6845
+ <xsl:otherwise>e</xsl:otherwise>
6846
+ </xsl:choose>
6847
+ </xsl:when>
6848
+ <xsl:otherwise>
6849
+ <xsl:choose>
6850
+ <xsl:when test="$number = 1">st</xsl:when>
6851
+ <xsl:when test="$number = 2">nd</xsl:when>
6852
+ <xsl:when test="$number = 3">rd</xsl:when>
6853
+ <xsl:otherwise>th</xsl:otherwise>
6854
+ </xsl:choose>
6855
+ </xsl:otherwise>
6856
+ </xsl:choose>
6503
6857
  </xsl:template><xsl:template name="setAltText">
6504
6858
  <xsl:param name="value"/>
6505
6859
  <xsl:attribute name="fox:alt-text">